我已经开始在本地玩git了,并且遇到了一个我不确定如何处理的用例。
我正在研究分支中的尖峰,但后来遇到了一个简单的修正,也应该适用于主人。我目前发现的最好的是:
git stash
git checkout master
//do my correction manually
git commit -a
git checkout spike
git pop
看起来有点长,只有一条线,它涉及我做两次相同的修正。我不禁感到必须有更好的方法来做到这一点。在您的回答中,还请考虑我不想采取的同一文件中有其他更改的情况。
答案 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