首页 > 解决方案 > 在一个分支中完成两个不同分支的更改

问题描述

我有两个不同的分支,比如说 branchA 和 branchB。我签出到 branchB 并在 featureB 中进行了更改。除了featureB,我还对featureA进行了必要的更改!现在我只希望将 featureB 更改推送到 branchB,并且只将 featureA 更改推送到 branchA。请帮忙!

标签: gitgithub

解决方案


你有这个。

      C - FB - FA [branchB]
     /
A - B [master]
     \
      D - E [branchA]

A、B、C 等只是一些提交。FA 和 FB 代表功能 A 和功能 B 的提交。

你要这个。

      C - FB [branchB]
     /
A - B [master]
     \
      D - E - FA [branchA]

有几种方法可以处理这个问题。这是一个。

首先,将特征 A 更改为分支A。这将复制提交。可能会有冲突。

git checkout branchA
git cherry-pick FA

      C - FB - FA [branchB]
     /
A - B [master]
     \
      D - E - FA [branchA]

然后使用交互式变基消除来自 branchB 的提交。

git checkout branchB
git rebase -i master

会出现一个编辑器。删除带有违规提交的行,Git 将在 master 之上重写 branchB 中的剩余提交。

      C - FB [branchB]
     /
A - B [master]
     \
      D - E - FA [branchA]

有关更多信息,请参阅Git Book 中的重写历史记录


推荐阅读