假设我有一个本地回购,它与原产地完全一致。
从特定的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
分享最近的历史记录。假设在02979b...
之前共有10-15次提交共享共同祖先,但我还不想这样做。最终这些10-15次提交也需要合并。
答案 0 :(得分:4)
如果提交是本地的,只有本地提交,您可以随意使用它。只要您从未将该提交推送到远程仓库,以任何方式进行修改都是公平的游戏,包括变基。你最重要的事情并不重要,因为孩子的承诺不会影响他们的祖先。
答案 1 :(得分:2)
是的,你有什么看起来很好,它应该在你的更新中做你想要的描述。正如@haydenmuhi所描述的那样,在本地存储库中几乎任何东西都是“安全的”。当你推动时,重要的是你正在推动的分支上的提交 - 它们来自哪里以及你拥有的任何其他分支都不会有所作为。
至于稍后合并其他10-15次提交,您应该能够在将来做到这一点,只需合并02979b
或bfd70a83
,或重新定位some_other_branch..02979b
或some_other_branch..02979b
。如果你在合并它们之前还有一段时间,你现在仍然可能想要将它们改为some_other_branch
,以帮助它们保持最新状态。