我在git中有两个远程,即'origin'和'upstream'。origin在某个时候从上游分叉,自分叉以来,两者都有过几次提交。现在我想把"上游"上发生的许多(但不是全部)提交转移到"origin"。所以我的操作顺序如下:-
1-从远程存储库获取所有更改并更新本地master(我在master分支):-
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-在这一点上,我再次执行gitcherry,如步骤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
我已经仔细检查了我的登录主机,我可以看到第四次提交已经添加。为了看到gitcherry输出的变化,我还需要做什么吗?我需要做些什么才能正确地获得原点/master和 上游/master我在Windows2.11.0.Windows.1上使用git。
当精心挑选的提交与分支发生冲突时,就会发生这种情况,因此需要通过调整代码更改来解决这些冲突。因此,git cherry
无法确定新提交与其原始提交相同,因此它在要应用的更改列表中显示原始提交。这篇文章涉及所描述的情况。注意,这篇文章并不像下面的评论所描述的那样完全准确