gpt4 book ai didi

git - 在 Git 中将一个特性分离到一个新的分支中

转载 作者:太空狗 更新时间:2023-10-29 14:30:46 31 4
gpt4 key购买 nike

场景如下:我为一个代码库创建了一个新的存储库并进行了一些提交,但我决定该代码库的某些部分应该在它自己的分支中而不是在 master 中。我如何将该代码分离到另一个分支中,以便主人“不知道”它?显然我不能只创建分支然后从 master 中删除代码,因为从 master 到新分支的任何后续 merge 也会删除分支中的代码。

我确定这有一个微不足道的答案,但我想不出应该怎么做:)

最佳答案

如果你可以 rebase master(即没有其他人有你想移动到分支的更改),我会使用 git rebase -i 重新排列 master 中的提交,以便所有提交应该在分支中,毕竟所有提交都应该留在 master 中。之后,创建分支并重置 master,使其不包含任何分支提交。

例如,如果您有提交(其中 B 表示您要移动的提交,M 表示应该保留的提交):

M1---B1---M2---B2---M3

将它们 rebase 为

M1---M2---M3---B1---B2

创建新的分支和 git reset --hard master 到 M3

如果你不能 rebase master,创建你的分支,git revert 在 master 上你不想要的更改,然后执行 git merge -s ours master .这有效地告诉分支机构您知道还原并且您不希望它在那里。

之后,如果您将 master merge 到分支中,master 中的更改会正确 merge ,但还原不会。更重要的是,如果您随后决定分支已完成并且您想要 merge 回 master,它也可以正常工作 - 来自分支的所有更改都将 merge ,包括那些已恢复的更改。

关于git - 在 Git 中将一个特性分离到一个新的分支中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6321336/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com