2013-02-27 70 views
1

改變我目前在.git/refs/remotes/origin/master檢測到遠程分支

我的目標觀測更改是檢測變SHA遙控器上的,大概是因爲有人做了一個承諾。爲了拉下最新的遠程細節,我運行了git fetch --quiet --update-head-ok remoteName。這似乎不是使用該命令更新的正確文件。

應該遵守哪個目錄/文件?

回答

3

請勿手動監視git內部工作中的文件。使用git來檢查你的東西。在這種情況下,git rev-parse --verify origin/master會顯示您的本地副本origin/mastergit ls-remote origin master的SHA以從遠程獲取SHA。

我懷疑你正在運行的情況下,文件.git/refs/remotes/origin/master可能會過時,因爲許多不經常更改的引用不再實際存儲在單個文件中,但在.git/packed_refs。如果兩者都存在,git知道應該信任哪一個。

+0

我運行'git ls-remote origin master'命令。這些值是否保存到FS(例如.git /)。我問的原因是我想定期檢查這個值,如果它改變了,請做一些事情。 – rhodee 2013-02-27 19:15:18

+0

不,它們不會自動保存('git fetch'會保存它們,但也可以檢索所有內容)。沒有什麼能夠阻止你將輸出保存在某處,儘管... – twalberg 2013-02-27 19:54:32

+0

這正是我所做的。我的腳本的要點是通過ls-remote檢查SHA1中的更改​​,然後我需要確定如何更新git日誌。標記爲答案。 – rhodee 2013-02-27 20:09:32

1

這是如果遠程原點上的主分支已更新,將包含新提交散列的文件。不同的遙控器和不同的分支將具有預期的相應文件夾/文件位置。

要準確查看正在記錄更改的位置,請在不帶參數--quit的情況下運行fetch命令。響應的最後一行(如果有任何要獲取的內容)會告訴您下載的更改記錄的位置。

例如,這page on 'GIT HowTo'給出的例子

$ git fetch 
From /Users/marina/Documents/Presentations/githowto/auto/hello 
    6e6c76a..2faa4ea master  -> origin/master 

最後一行說,在遙控器改變的記錄主分支被記錄在origin/master - 或者更具體地說,.git/refs/remotes/origin/master