簡體   English   中英

如何將 Git 子模塊移動到子目錄?

[英]How to move Git submodule to sub-directory?

伙計們,我只是用 submodule 組織了一些 Git repos,地址在這里: repos

我想將所有子模塊移動到一個名為 repos 的新目錄中,例如 jquery -> repos/jquery。

我更改了.gitmodules文件,但似乎它不起作用。 我應該怎么辦?

從 git 1.8.5 開始,

git mv old/submod new/submod 

按預期工作並為您完成所有管道工作。 您可能想要使用 git 1.9.3 或更高版本,因為它包含子模塊移動的修復。

致謝:來自下方評論的 Mike Lowerey

原始答案

剛才遇到了同樣的問題,最后刪除了子模塊引用(如本文所述)並在我希望它去的地方重新創建它。

按照您將子模塊jquery移動到repos/jquery的示例

  1. .gitmodules中刪除(通常是三行)子模塊引用。
  2. 檢查.git/config以獲取對子模塊的引用並刪除它們(如果存在)
  3. 執行git rm --cached jquery將子模塊引用從存儲庫中刪除
  4. 刪除舊的子模塊文件夾
  5. 使用git submodule add git://github.com/jquery/jquery.git repos/jquery重新創建您的子模塊引用(就像您以前可能做的那樣)

如果您的子模塊設置為特定標簽,分別提交(您肯定會在一個穩定的項目中擁有),您將再次設置它。

由於這個復雜的過程,我強烈希望有(或將有,至少在 git 路線圖上)一種更直接的方法來實現這一目標。 如果不是,那么肯定可以將一些腳本組合在一起以更快地完成此操作...

暫無
暫無

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

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