Что делать, когда новые коммиты происходят после git rebase?
Я только что закончил с особенно волосатым перебазированием (кто-то несколько недель работал над веткой, никогда не перебирая.) Мне потребовалось около двух или трех часов, потому что используемый мной "читаемый человеком" формат - это просто набор идентификаторов и ссылок.
В то время как я делал эту ребазу, в ветке появилось еще два коммита, прежде чем у меня был шанс сделать git push результат ребазирования.
Есть ли лучшая практика для получения этих новых коммитов без повторного выполнения перебазирования или слияния? Первоначально я думал, что я смогу выполнить эти новые коммиты и сделать git push -f, но это будет опасно?
2 ответа
Вы должны быть в состоянии повторно отменить ваши коммиты снова.
Единственная проблема заключается в том, что вам придется переделать разрешение конфликтов, потому что вы не активировали git rerere
,
Ну,... тебе не обязательно с rerere-train.sh
сценарий
См. " Треган Руссель"?
В этой простейшей форме скрипт начинается с указанного вами коммита и проходит каждый родительский коммит для поиска конфликтов.
Это позволит вам записать эти прошлые разрешения конфликтов и снова выполнить перезагрузку, не выполняя их снова.
cherry-pick
только для объединения определенных коммитов, но если ваша ветка содержит много коммитов, которые необходимо объединить, то лучше rebase
Это.
У разных людей могут быть разные лучшие практики. Я следую за следующим:
git pull --rebase
так, чтобы я мог гарантировать, что моя ветвь обновлена от удаленной ветви, это было создано.git push origin :feature_branch
это удалит удалить ветку удаленного объекта. Хотя я знаю, что могу простоgit push -force feature_branch
но я хочу подтвердить, что git ничего не испортит:):):)- в конце концов
git push origin feature_branch
Я буду рад узнать вашу практику или предложить мне что-нибудь получше.