簡體   English   中英

Git 子模塊到子文件夾

[英]Git Submodule to a subfolder

在 svn 中,您可以將存儲庫鏈接到另一個 svn 存儲庫中的任何文件夾。 我想知道 git 是否有類似的功能? 基本上我想在我的存儲庫中有一個 git 子模塊,但我希望子模塊是指向另一個 git 存儲庫的子文件夾的指針,而不是整個存儲庫。 這可能嗎?

Git 不支持部分檢出,因此子模塊必須指向一個完整的存儲庫。

Git 郵件列表上的這個線程提供了一些背景信息。

Panther Software 的這篇文章提供了一些其他人試圖實現類似目標(即使用 Git 復制svn:externals )的見解。

如果這兩個項目都在您的控制之下,那么我建議您將您感興趣的“子文件夾”隔離到它自己的獨立存儲庫中。 然后兩個項目都可以創建鏈接到它的子模塊。

我遇到了同樣的問題。 從 git 級別來看,它看起來無法解決,至少不能讓您輕松地拉或推到父存儲庫。

但是,您可以使用簡單的符號鏈接來解決此限制:

  1. 在單獨的目錄中設置您的子模塊。
    • git submodule add http://example.com/repo.git ./submodules/repo
  2. 在所需位置創建指向子文件夾的符號鏈接:
    • ln -s ./submodules/repo/subdirectory ./wherever/symlinked_directory

參考:

通常,當您嘗試提取某個其他項目的子文件夾時,該子文件夾首先應該是一個單獨的項目,並且兩個父項目都應該引用它。

您可以使用git subtree 之類的工具提取此類子項目的歷史記錄。 然后,您可以使用 git submodule 或 git subtree(無論您喜歡哪種方式)將子樹鏈接回您的項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM