Git 分支然后从主分支删除代码

Git 分支然后从主分支删除代码

我们一直在使用一个 git[master]分支来处理代码库。

现在我们已经到了实际上需要为一个功能进行分支并从主分支中删除该功能的时候了。

因此我们目前有

[master] <- one branch with feature 1 and feature 2

但我想让它看起来像这样

[master]    <- only feature 1
[feature-2] < - feature 1 and feature 2 (what the master is now)

最好的方法是什么?我能想到的唯一方法是[feature-2]从主分支创建分支,然后删除主分支中我不想要的所有代码。

然而,我们可能需要对功能 1 进行一些错误修复等[master],然后将其合并到其中[feature-2]

由于这两个功能是同时开发的,因此我也不能仅从旧的提交中进行分支。

有没有更好的办法可以处理这种情况,以便我仍然可以将分支合并在一起等等?

谢谢

答案1

如果碰巧您刚刚提交了以前的提交feature-1,那么您只需将主分支指向该提交即可。

根据,您可以通过运行以下命令来实现:

git checkout master
git reset --hard <hash_of_the_commit>

如果没有,我认为实现这一目标的唯一方法就是按照你说的做,分支然后删除任何不需要的代码。

至于第二个问题,您可能会在不同的分支中开发修补程序,然后将其应用于您需要的任何其他分支。

git checkout master
git merge hotfix
git checkout feature-1
git merge hotfix
git checkout feature-2
git merge hotfix

您可以在此处查看更多内容这里,它准确描述了您的要求。

答案2

我认为最合理的方法是将两个功能的稳定代码保留在分支中master,将与功能 1 相关的开发代码保留在一个分支中feature-1,将功能 2 的代码保留在另一个分支中feature-2。当您的代码在这些分支中变得稳定时,您可以将它们合并到master

为了做到这一点,创建分支feature-2,然后在开始功能 2 之前master执行git reset --hard最后一次提交,然后创建分支feature-1

相关内容