2012-01-11 57 views
6

我在我的項目中引用了git子模塊,現在需要在目標git repo中引用特定的SHA。Git子模塊:指定一個特定的SHA?

# .gitmodules 
[submodule "vendor/plugins/ssl_requirement"] 
    path = vendor/plugins/ssl_requirement 
    url = git://github.com/retr0h/ssl_requirement.git 

我想要的SHA是bc96ad96407a72a60e0542cf3b0cecc6ff9e278e

回答

20

根據定義,子模塊始終在子項目中引用特定的SHA1。該SHA1不在.gitmodules文件中表示,而是表示爲包含子模塊的樹對象中的條目。你在git中設置的方式是cd進入子模塊,檢出你想要的SHA1,然後cd回到父回購庫並提交你的更改,這將顯示出來就像更改過的文件一樣。

所以你的情況,你可以做的是

cd vendor/plugins/ssl_requirement 
git checkout bc96ad96407a72a60e0542cf3b0cecc6ff9e278e 
cd .. 
git add ssl_requirement 
# commit whenever you're ready 
+1

+1;這幾乎就是我剛寫的東西。請注意,如果子模塊在提交之前最後從源獲取,則可能需要在子模塊中運行'git fetch'來獲取它! – Cascabel 2012-01-11 02:07:52

+0

謝謝,非常有道理! – Zubin 2012-01-11 02:25:36