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 ветвь с использованием этого флага.

Другие вопросы по тегам