2010-12-01 80 views
1

我想比较我的本地master分支与远程origin/master分支。我知道如何从我的本地master分支执行git pull --rebase; git diff origin/master以检测代码中的逐行差异。但是,我想比较提交历史,即并排显示git loggit log origin/master。我试图git show-branch -a但得到:HEAD指向什么?

* [master] change content background-color to blue 
! [origin/HEAD] add favicon 
    ! [origin/master] add favicon 
--- 
* [master] change content background-color to blue 
*++ [origin/HEAD] add favicon 
  1. 有没有更好的办法?
  2. 另外,HEAD指向检出的提交?
+0

问题的标题应该真的改变。你真的在要求区分事物,而接受的答案是关于区分事物。请重命名该问题并删除#2。因此它会停止显示为标题的错误搜索结果。 – masukomi 2014-11-18 21:46:15

回答

1

你可以这样做:

git log master..origin/master 

要列出masterorigin/master “之间” 的提交。

HEAD指向签出的提交。

点点语法和HEAD都记录在gitrevisions(7)

+0

感谢您的链接。它说:“HEAD命名您在工作树中的更改是基于”A.K.A检出提交。 :) – ma11hew28 2010-12-09 18:47:56

3
  1. 有没有更好的办法...

    1. 检测的代码行由行的差异?

      git diff origin/master..master

    2. 比较犯下的历史?

      git log origin/master..master

  2. 而且,这是什么HEAD点,检出的承诺?

    HEAD指向当前“分支”的“尖端”。

0

这给我看的差异,同时具有两个分支可见提交

 
git-forest --date-order $(git merge-base master origin/master) master origin/master 

一个相当不错的方式(或者,通过gitkgit log --oneline --graph更换..)

+0

以前没有听说过git-forest;有一些[关于git wiki的信息](https://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools#git-forest)。对于大多数情况,正如你所建议的那样,内置工具可能已经足够了。 – Cascabel 2010-12-02 02:54:14

0

您应该使用git fetch不是git pullgit pull会尝试合并分支。您现在处于冲突状态,请使用git merge --abort来中止它。