2010-12-01 79 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來中止它。