git:git cherry-pick

时间:2017-11-01 11:01:42

标签: git git-cherry-pick git-cherry

我在git中有两个遥控器,即' origin '和' 上游'。原点在某些时候从上游分叉,并且自从fork以来都有几次提交。现在我想带来许多(但不是全部)在上游发生的提交#39;来源'起源'所以我的操作顺序如下: -

1-从远程存储库中获取所有更改并更新本地主服务器(I' m在主分支上): -

git fetch origin
git fetch upstream
git rebase origin/master

2-列出本地主人和上游主人之间提交的差异: -

git cherry -v master upstream/master

看到我看到有许多提交带有(+)符号后: -

+ abcdabcdabcdabcdabcdabcdabcdabcdabcd First different commit
+ 123412341234123412341234123412341234 Second different commit
+ efabefabefabefabefabefabefabefabefab Third different commit
+ 567856785678567856785678567856785678 Fourth different commit
+ a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 Fifth different commit

3-我对挑选第四次提交感兴趣,所以我继续执行以下命令(确保我首先在分支主控上): -

git cherry-pick 567856785678567856785678567856785678

4-此时,我再次执行git cherry,如步骤2中所列: -

git cherry -v master upstream/master

我预计输出会有所不同,因为第四次提交会有( - )。但是,此命令后的输出仍然相同: -

+ abcdabcdabcdabcdabcdabcdabcdabcdabcd First different commit
+ 123412341234123412341234123412341234 Second different commit
+ efabefabefabefabefabefabefabefabefab Third different commit
+ 567856785678567856785678567856785678 Fourth different commit
+ a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 Fifth different commit

我已经仔细检查了我的登录主人,我可以看到已添加第四次提交。为了看到git cherry输出的变化,我还需要做些什么吗?为了正确理解 origin / master upstream / master 之间的区别,我需要做些什么?

我在Windows版本2.11.0.windows.1上使用git。

1 个答案:

答案 0 :(得分:2)

当挑选的提交与您的分支发生冲突时会发生这种情况,因此您需要通过调整代码更改来解决它们。因此,git cherry无法弄清楚,新提交与其创建者相同,因此它在要应用的更改列表中显示原始提交。 This post触及描述的情况。请注意,该帖子不完全准确,如下面的评论所述。