2016-07-08 34 views
1
  • 我正在尋找一步一步的命令來運行。
  • 假設所需的分支可能尚未存在於我的本地存儲庫中,並且我的工作空間可能指向另一個分支,那麼應該運行哪組命令,以便我只獲取所需的最小數據。我應該先嚐試獲取日誌信息,以便我可以獲取與分支相對應的修訂版本?

或者我應該做一個該分支的git獲取,然後得到相應的分支的​​修訂?如何獲取上次推送到分支的修訂散列?

回答

0

(假設你的遙控器被稱爲「原點」和你的分支被稱爲「主」)

首先,你要確保分支機構在本地資源庫是最新的,與等效遠端:

git fetch origin master 

然後你就可以得到最新提交的哈希:

git log -1 --format="%H" origin/master 

相關:https://stackoverflow.com/a/13944180/1973409

+0

我發現git fetch並不能反映git log輸出中的新修訂版。然而,git推動是這樣做的。請更新您的答案或糾正我,如果我失去了一些東西。 –

+0

確保包含'origin/master'部分。或者,您可以使用'--all'選項。我認爲你的意思是拉和不推動你的評論,這也將工作,但也更新工作區(不同於獲取)。 –

+0

我感到困惑。是的,我的意思是拉。我正要問'git log'和'git log origin master'有什麼區別?爲什麼'git log'即使在提取後也不更新信息? –

0
git ls-remote origin master 

將讓你每一個裁判對比賽的「主人」的遙控器上,ls-remote比裁判命名約定較低的水平。分支refnames是開始refs/heads/的名稱。

您可以直接列出任何存儲庫的裁判,嘗試

git ls-remote git://git.kernel.org/pub/scm/git/git.git refs/heads/master 

或只是離開過例如refname模式。

這也適用於當前的回購,嘗試

git ls-remote . 
在明顯的地方

+0

對於參考資料還沒有太多的想法。目前,其他答案對我來說工作得很好。不管怎麼說,還是要謝謝你。 –

相關問題