Безопасно ли git перебазировать новую локальную ветку с помощью различных удаленных коммитов? - PullRequest
1 голос
/ 04 февраля 2012

Предположим, у меня есть локальное репо, полностью соответствующее происхождению.

Безопасно ли создавать новую ветку из определенного SHA, а затем делать все необходимые изменения для моей новой ветки по отношению к другим веткам / SHA, существующим на источнике?

git checkout -b merging_some_commits bfd70a83f5bf3f7fd44422233a82751535428cbd

git rebase --onto some_other_branch 02979b4e34809d53e5071501046f59ad5c

git checkout some_other_branch

git merge mergin_some_commits

git push origin some_other_branch

Обновление: я в основном пытаюсь выбрать вишню 02979b... - bfd70a83... в some_other_branch. 02979b... является предком bfd70a83... Ни одна из последних историй не делится с some_other_branch. Предположим, есть 10-15 коммитов до 02979b... общего предка, которого я не хочу (пока). В конечном итоге эти 10-15 коммитов также необходимо будет объединить.

Ответы [ 2 ]

4 голосов
/ 04 февраля 2012

Если коммит локальный и только локальный, вы можете делать с ним все, что захотите. До тех пор, пока вы никогда не выдвигали этот коммит в удаленное репо, это будет честной игрой, которую можно модифицировать любым способом, включая перебазирование. Неважно, что вы перебазируете поверх, потому что дочерние коммиты не влияют на их предков.

2 голосов
/ 04 февраля 2012

Да, то, что у вас там, выглядит отлично, и оно должно делать то, что вы описываете, что вы хотите в своем обновлении. Как описал @haydenmuhi, в вашем локальном репозитории практически все "безопасно". Когда вы нажимаете, все, что имеет значение, это коммиты, которые находятся на ветке, которую вы нажимаете - откуда они пришли и любые другие ваши ветки не будут иметь значения.

Что касается последующего слияния других 10-15 коммитов, то в будущем вы сможете сделать это просто замечательно, просто объединяя 02979b или bfd70a83, или перебазируя some_other_branch..02979b или some_other_branch..02979b. Если до того, как вы их объедините, пройдет еще какое-то время, возможно, вы захотите переназначить их на some_other_branch сейчас, чтобы они оставались немного текущими.

...