1

我在 git 中有两个遥控器,分别是“ origin ”和“ upstream ”。origin 在某个时候被分叉到上游,并且自分叉以来都有几次提交。现在我想将“上游”上发生的许多(但不是全部)提交带到“起源”。所以我的操作顺序如下:-

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

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-我有兴趣挑选第四次提交,所以我继续执行以下命令(确保我首先在分支 master 上):-

git cherry-pick 567856785678567856785678567856785678

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

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/masterupstream/master之间的区别,我需要做什么?

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

4

1 回答 1

2

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

于 2017-11-01T14:19:14.533 回答