使用git将次要更新复制到另一个分支

时间:2009-12-02 10:01:05

标签: git

我已经开始在本地玩git了,并且遇到了一个我不确定如何处理的用例。

我正在研究分支中的尖峰,但后来遇到了一个简单的修正,也应该适用于主人。我目前发现的最好的是:

git stash
git checkout master
//do my correction manually
git commit -a
git checkout spike
git pop

看起来有点长,只有一条线,它涉及我做两次相同的修正。我不禁感到必须有更好的方法来做到这一点。在您的回答中,还请考虑我不想采取的同一文件中有其他更改的情况。

2 个答案:

答案 0 :(得分:2)

替代解决方案如果您知道您希望对许多分支提前 进行更改,则应遵循"Resolving conflicts/dependencies between topic branches early"和{{3}中的建议Junio C Hamano(git maintainer)的博客文章,即创建单独的主题分支,您可以在其上进行更改,然后将此分支合并到(在您的情况下) '主人'和'秒杀'。

答案 1 :(得分:1)

如果要应用于master的更改包含spike分支上的一个完整提交,那么就会针对这种情况执行cherry-pick命令。

git stash
git checkout master
git cherry-pick <hash>
git checkout spike
git stash pop

如果您只需要提交的一部分,请使用:

git stash
git checkout master
git cherry-pick -n <hash>
# tinker with the index until it contains the changes that you want to apply to master
git commit
git checkout spike
git stash pop