0

我还是 git 的新手,我遇到了这个 cherry-pick 命令。假设我从devel分支到master分支挑选了一个提交(我们称之为 CA), 如果我的解释是正确的,它们现在都有不同的 sha1 id。

所以我的问题是,如果以后我想检查devel 分支和master分支 之间的“差异”,git cherry以找出哪些提交最终被推送到master而哪些没有,但是由于提交(CA)我刚刚挑选会有不同的 SHA1 id 所以当我执行git cherry master devel它告诉我什么?它是否告诉我 CA 被推送到 主服务器?或者它是否告诉我 CA 没有被推送到服务器,因为它们不共享相同的 SHA1 ID?

4

1 回答 1

1

git cherry用于git patch-id比较提交。引入相同更改的两个提交将具有相同的补丁 ID,并且git cherry会通过在提交前加上连字符/减号 (-) 符号来表示更改已经存在于上游。

因此,在您的情况下git cherry master devel,将输出您挑选的以连字符/减号 (-) 为前缀的提交,表明它引入的更改已经存在于 master.xml 中。引入 master 中不存在的更改的提交将以加号 (+) 为前缀。

这在man git-cherry中有解释。

于 2013-03-18T13:05:15.990 回答