我的本地git存儲庫位於加密卷內。我希望只有當遙控器有新提交時才能運行git pull --all
。但是,我無法使用像here這樣的post-receive hook,因爲我沒有加密卷的密碼。這意味着,即使掛鉤將被觸發,我仍然不知道裝入卷的密碼並拉取新的更改。所以我正在尋找一些其他的替代品,我想到的一種可能的方式是向遙控器詢問最新版本的SHA,並將其與本地副本知道的最新版本SHA進行比較,如果它們匹配,則我不需要運行pull命令,如果它們不匹配,那麼我需要運行git pull命令。我可以在沒有本地副本的情況下在遠程存儲庫上發出git rev-parse嗎?
有沒有一種方法可以在遠程存儲庫上運行git rev-parse master
?
你可以得到更多的背景我的問題here
非常感謝您回答我的問題。 'git ls-remote'是我正在尋找的命令。比較'git ls-remote'和'git rev-parse master'的輸出會告訴我我的本地回購是否更新。至於你的問題,你可能想看看[這裏](http://stackoverflow.com/questions/19374975/how-to-make-my-local-git-copy-always-at-its-latestversion - 自動)。我不知道加密卷的密碼,只有用戶知道密碼。所以他們也給我,然後我可以裝入卷(並運行git命令)。 – e271p314
啊,好的。也許這種情況在這種情況下不適用,那麼:本地回購可能遠遠超過遙控器,因此遙控器的讀取或拉動無效;而且這兩者可能會發生分歧,所以抓取會帶來新的東西,但本地和遠程仍然不同步。例如,假設本地和遠程在(比如說)badcafe處於同步狀態,然後有人在本地執行'git commit',從而產生rev defaced。轉速數字不匹配,但沒有什麼可以'取';只有'push'可以使這些同步。 – torek
這對我來說不是問題,因爲沒有人正在編輯加密卷中的文件。偶爾用戶要求系統從各種來源編譯二進制文件。每個源都是加密卷內的本地git回購。大多數回購並不需要只更新其中的幾個,而不是爲每個回購庫運行'git pull --all',我可以使用您的建議進行快速檢查,並且只對需要更新的回購庫運行拉。由於沒有人編輯本地存儲庫中的文件,所以我相信您的解決方案將會很好。再次感謝:-) – e271p314