在svn中,您可以將存儲庫鏈接到另一個svn存儲庫中的任何文件夾。我想知道git是否有類似的功能?基本上我想要一個git子模塊在我的倉庫中,但是我希望子模塊是指向另一個git倉庫的子文件夾的指針,而不是整個倉庫。這可能嗎?Git Submodule到子文件夾
23
A
回答
18
Git不支持部分簽出,所以submodule必須指向一個完整的存儲庫。
This thread on the Git mail list提供了一些背景信息。
This article from Panther Software提供了其他人嘗試實現類似目標的一些見解(即使用Git複製svn:externals
)。
如果這兩個項目都在您的控制之下,那麼我建議您將您感興趣的「子文件夾」分離爲其自己的獨立回購。然後這兩個項目都可以創建鏈接到它的子模塊。
3
通常,當您嘗試提取某個其他項目的子文件夾時,該子文件夾首先應該是一個單獨的項目,並且父項目都應該指向它。
您可以使用像git subtree這樣的工具提取這樣的子項目的歷史記錄。然後,您可以使用git submodule或git subtree將子樹鏈接回您的項目,無論您喜歡什麼。
+9
並非總是如此。例如,我想將Twitter Bootstrap拖入我的項目中以使用.less文件。我不需要所有的例子和解析器等,只需從/ lib /文件夾中獲取.less文件即可。目前我無法使用子模塊自行獲取 – Hades 2012-01-08 08:56:28
13
我遇到了同樣的問題。它從git級別看起來並不可行,至少不能讓您輕鬆地將其推向父級回購。
但是,您可以解決此限制,通過一個簡單的符號鏈接:
- 設置你的子模塊在一個單獨的目錄。
git submodule add http://example.com/repo.git ./submodules/repo
- 的地方創建一個符號鏈接到子文件夾你想要的:
ln -s ./submodules/repo/subdirectory ./wherever/symlinked_directory
參考文獻:
相關問題
- 1. git submodule沒有自己的文件夾
- 2. 使用git和submodule,什麼是好的文件夾結構?
- 3. 'git submodule update --init --recursive'VS'git submodule foreach --recursive git submodule update --init'
- 4. Git submodule init async
- 5. Git submodule commit
- 6. Git Submodule or fork
- 7. 推GIT Bash的文件夾到Appharbor不推子文件夾
- 8. git的子文件夾到分支保存文件夾鏈接
- 9. Git創建子文件夾
- 10. Git忽略子文件夾
- 11. .htaccess - 子文件夾到子文件夾=子文件夾404
- 12. 無法'git submodule foreach git pull'
- 13. Git忽略子文件夾出現在每個子文件夾
- 14. git submodule from Hg repo?
- 15. git submodule衝突推
- 16. git add submodule of remote
- 17. git submodule「--reference」參數
- 18. git submodule commit/push/pull
- 19. Github中的文件夾標記爲submodule錯誤地
- 20. Git推送到文件夾
- 21. git push後git拉到www文件夾
- 22. .htaccess重寫/文件夾/子文件夾到/文件夾/?子文件夾
- 23. 如何一個git子模塊的文件夾`.git`發送到父版本庫git的`/模塊/`文件夾?
- 24. 忽略子文件夾中的.git文件夾
- 25. Git Submodule:無法將子模塊更新到較早版本
- 26. 更改Git根文件夾的內容到一個子文件夾
- 27. 如何將本地git倉庫從父文件夾移動到子文件夾?
- 28. git log --stat相對於子文件夾
- 29. 倉庫的git部署子文件夾
- 30. git中籤出子文件夾
是的,這聽起來像子文件夾應該是它自己的模塊,如果它要兩個項目之間共享。 – 2009-07-13 19:17:27
鏈接死於Panther軟件http://panthersoftware.com/articles/view/3/svn-s-svn-externals-to-git-s-submodule-for-rails-plugins – 2016-08-22 11:07:32