我需要添加一些JS庫到我的項目中,我也希望能夠從它的回購庫中更新該庫(這就是爲什麼我將它添加爲子模塊的原因)。但我只需要從該回購庫中的1個文件放入我的JS目錄,而庫存儲庫包含測試,coffeescript源等,這在我的存儲庫中不需要。所以問題是 - 如何添加不完整的回購作爲子模塊,但從它的單個文件/目錄?GIT:只添加遠程資源庫中的一些文件作爲子模塊
我想這是與Git Sparse checkouts幫助某種程度上可以,但不知道如果我在這個正確的方式...
我需要添加一些JS庫到我的項目中,我也希望能夠從它的回購庫中更新該庫(這就是爲什麼我將它添加爲子模塊的原因)。但我只需要從該回購庫中的1個文件放入我的JS目錄,而庫存儲庫包含測試,coffeescript源等,這在我的存儲庫中不需要。所以問題是 - 如何添加不完整的回購作爲子模塊,但從它的單個文件/目錄?GIT:只添加遠程資源庫中的一些文件作爲子模塊
我想這是與Git Sparse checkouts幫助某種程度上可以,但不知道如果我在這個正確的方式...
爲了增加Abizern的answer(upvoted),你可以宣佈你的子模塊(設置爲包含你想要的文件的分支),以follow that branch(git submodule
man page ):
git submodule add -b yourSubmoduleBranch /url/to/your/submodule/repo
如果您已經添加子模塊,而不-b
,你可以添加選項很輕鬆地:見「Git submodules: Specify a branch/tag」。
# Make sure your submodule is actually at the latest of that branch:
cd path/to/your/submodule
git checkout -b branch --track origin/branch
# record that on the parent repo
cd /path/to/your/parent/repo
git config -f .gitmodules submodule.<path>.branch <branch>
git add yourSubmodule
git commit -m "Submodule now follows branch"
所有你需要爲你的子模塊,以反映最新的修改,現做現,父回購級別:
git submodule update --init --remote --recursive
謝謝Abizem,這看起來像一個很好的解決方案,但因爲我'在git中很弱我無法想象如何設置從開發到主分支的自動更新。沒有自動更新,如果我必須手動完成,它將幾乎相同,如果我甚至不使用子模塊來替換該文件。 – SET
我不明白你的意思是「從開發到主」和「自動更新」。 – Abizern
'master'分支現在只在repo的根目錄中包含一個最終編譯文件,'development'包含開發所需的所有內容以及子目錄中某個位置的相同文件。現在,如果有什麼東西會被推到'開發'分支 - 'master'中的文件也應該更新 - 這就是我的意思是自動更新。有沒有辦法做到這一點? – SET