git rebase приватная ветка
У нас есть общий репозиторий git, которым пользуются все, и у нас есть две ветви
- мастер
- DEV
У меня есть своя вилка этого репо. Время от времени я вытягиваю изменения из репозитория upstream в соответствующие ветви ветки, а затем перекладываю свои ветви функций на dev.
то есть.
вилка
- мастер
- DEV
- feature1
Команды:
git checkout dev
git pull upstream dev
git checkout feature1
git rebase dev
Теперь время от времени, когда я возвращаю свою ветку feature1 обратно на свою ветвь, мне говорят, что моя ветка устарела и что-то делает, а затем я получаю конфликты слияния.
Я и буду единственным человеком, работающим над этой веткой / веткой, поэтому я не понимаю, почему у меня возникают конфликты слияний.
Это проблема с перебазированием толкаемой ветви, хотя никто больше не работает с ней? Какой способ обойти это или лучший рабочий процесс, чтобы следовать
1 ответ
Это происходит потому, что вы отклоняете свои изменения. После того, как вы сделали, что ваша ветка больше не содержит тех же коммитов, что и раньше, она содержит новые коммиты, которые отражают те же (или похожие изменения). Когда вы пытаетесь протолкнуть эти изменения, git замечает, что коммит в текущем кончике ветви в целевом хранилище не является предком коммита, который вы пытаетесь установить в качестве нового кончика этой ветки.
Вам нужно использовать git push -f
заставить толчок произойти, даже если это не быстрое движение вперед. Но вы, делая это, должны быть осторожны, чтобы не стереть другие изменения из этой ветки. Если эта ветвь только когда-либо изменена в вашем единственном хранилище, ее можно использовать -f
на этой одной ветви, но вы определенно хотите быть осторожным, чтобы не подтолкнуть к master
или же dev
ветвь с использованием этого флага.