使用各种远程提交安全地git rebase新的本地分支?

时间:2012-02-03 21:12:22

标签: git rebase git-rebase

假设我有一个本地回购,它与原产地完全一致。

从特定的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_branch02979b...bfd70a83...的祖先。不与some_other_branch分享最近的历史记录。假设在02979b...之前共有10-15次提交共享共同祖先,但我还不想这样做。最终这些10-15次提交也需要合并。

2 个答案:

答案 0 :(得分:4)

如果提交是本地的,只有本地提交,您可以随意使用它。只要您从未将该提交推送到远程仓库,以任何方式进行修改都是公平的游戏,包括变基。你最重要的事情并不重要,因为孩子的承诺不会影响他们的祖先。

答案 1 :(得分:2)

是的,你有什么看起来很好,它应该在你的更新中做你想要的描述。正如@haydenmuhi所描述的那样,在本地存储库中几乎任何东西都是“安全的”。当你推动时,重要的是你正在推动的分支上的提交 - 它们来自哪里以及你拥有的任何其他分支都不会有所作为。

至于稍后合并其他10-15次提交,您应该能够在将来做到这一点,只需合并02979bbfd70a83,或重新定位some_other_branch..02979bsome_other_branch..02979b。如果你在合并它们之前还有一段时间,你现在仍然可能想要将它们改为some_other_branch,以帮助它们保持最新状态。