Я пытаюсь определить лучший рабочий процесс для работы с несколькими филиалами и PR, которые могут основываться друг на друге.Я просто хочу знать, каковы лучшие практики, особенно в отношении перебазирования в этом случае, чтобы я не попал в плохое состояние.Вот более или менее то, что я делаю до сих пор, с некоторыми из описанных сценариев.Пожалуйста, дайте мне знать, что было бы лучше:
Я работаю с github, у меня есть мастер-репозиторий origin на github, а также мой собственный репозиторий.Я нажимаю на свое пользовательское удаленное репо и превращаю PR в исходное главное удаленное репо.
git checkout master
git checkout -b branch_first
.. do some work ...
git commit
git push remote
# Make a PR on github for branch_first, to merge it into the origin master branch
# While I wait for comments/review on branch_first, start to
# Work on branch_second
git checkout -b branch_second # This branch is based off first
.. do some work ...
git commit
git push remote
# Make a PR on github for branch_second, to merge it into the origin master branch
# Got some review comments, checkout branch_first and make some changes
git checkout branch_first
.. do some work ...
git commit
git push remote # Possibly repeat this, or ask the committer to merge when done.
Теперь это, по-видимому, в основном работает, однако при перебазировании я часто оказываюсь в плохом состоянии.
Время от времени вам нужно фиксировать фиксации фиксации, чтобы поддерживать связь с общественностью в чистоте и легко просматривать.Поэтому я запускаю что-то вроде этого на скажем branch_second.
rebase -i HEAD~10
# change commits to fixup or squash and save.
При этом я сталкиваюсь со странным поведением, мне необходимо исправить конфликты слияния с файлами, которые я, например, не редактировал.Пир сказал мне, что это может взять все 10 предыдущих коммитов и найти общего предка для перемещения указателя branch_second, что вызывает странные проблемы, подобные этой.
Иногда мне нужно получить файлы кода, которые я изменил во времяобзор кода branch_first в branch_second
rebase branch_first
Насколько я понимаю, это может работать некорректно все время?Я думаю, что иногда это приводит меня в плохое состояние.Некоторые коллеги говорили мне, что это может быть более подходящим для запуска на branch_second
git rebase --onto master branch_first branch_second
Иногда мне нужно снова получать файлы из источника master.Поэтому я запускаю это на branch_first или branch_second.
git fetch origin master
git rebase origin/master
Иногда, когда я запускаю команды rebase, я теряю происхождение, у меня есть коммиты, которые я хочу в основном, но я не вижу branch_first в журнале gitистория коммитов, которые я ожидаю.