如何获取分支1中但不在分支2中的提交列表

时间:2014-10-27 06:15:22

标签: git github version-control

我说两个分支'主'和'当前'。通常我会在主人身上做一些改变,然后在实力上做一些樱桃。但有时我直接在当前的分支中做了一些提交,忘记了樱桃挑选到主人。现在我想获得当前分支中存在的所有提交ID(哈希)的列表,但是通过任何双向方式从主服务器中丢失

  1. 要么他们没有被主人挑选,
  2. 或当前分支未在master中合并。
  3. 如何从master但在当前分支中获取这些缺失提交的列表?

2 个答案:

答案 0 :(得分:0)

你不应该改变一个,樱桃挑选它。樱桃采摘是一种特殊情况,应该很少进行。我不确定我是否了解您的工作流程,但您应该做的是将更改合并到master,然后将其合并到(或根据您希望树的方式重新定义)current。 Cherry pick会将引入的diff应用为新提交,因此您无法进行任何跟踪。如果你合并(而不是挑选),以下方法将起作用。

git log master..current会为您提供可从current(即 current)中提交的提交,但会排除可从master访问的提交(即 in master)。换句话说,它会向您显示currentmaster中没有的提交。

这是一个例子。

 /---B(current)
A 
 \---C(master)

现在,git log master..current会给你Bgit log master..current会给你C

只有正确使用合并,这一切才有效。樱桃采摘打破了这一切。

答案 1 :(得分:0)

这是重复但搜索无法为我找到原件。

您可以使用

git cherry

git log --cherry

(或--cherry-mark或--cherry-pick)。

请注意,列出SHA是100%可靠的。任何cherry命令通常都很好,但可能有误报。