2010-03-18 100 views
3

我試圖將'master'的副本與它跟蹤的遠程存儲庫上的副本進行比較。我認爲下面的命令會起作用,而且往往似乎是這樣。然而,有時它不會產生任何東西,但我知道遠程分支有很多變化,我可以通過拉動來確認。git:'log master..origin/master'沒有像預期的那樣運行

git log master..origin/master 

任何人都可以解釋這種行爲,並告訴我應該用什麼命令來確定本地和遠程之間的變化?

[另一個數據:我曾經發生過'git log master..origin/master'什麼也沒有產生。然後我做了拉。由於我有一些文件的工作副本,拉失敗。在此之後,'git log master..origin/master'確實顯示了我的差異。看來拉已經更新了一些本地日誌?如果是這樣,我怎麼能做到這一點,而不做(或試圖做)拉?]

回答

3

這是因爲origin/master是您的存儲庫中的的遠程分支。它代表最後一次「查看」(獲取,這是拉和遠程更新的一部分)的起源主分支的起始位置。

當您拉動時,執行獲取,並且origin/master得到更新。然後調用合併,這可能會也可能不會失敗,但這對您的遠程分支沒有影響。

您還可以使用git fetch --allgit fetch origin來獲取這些更新。

1

,如果你沒有取(在你的本地回購原籍本地引用)的東西離開原點它只會告訴你一些差異。

這就是爲什麼你看到後的差異甚至失敗git pull

  • 它首先獲取
  • 然後試圖合併(和失敗)

,但是,對於足夠git log來提取您需要的信息,因爲它們在您當地的回購(fetch部分之後)

相關問題