2012-10-02 34 views
1

我試圖創建一個新的存儲庫並向其中添加兩個項目。其中一個項目已經在Git源代碼控制之下,所以我複製了該項目並刪除了.git文件夾並刪除了它的存儲庫。當我將項目添加到我的存儲庫時,不在源代碼控制下的項目會被正確添加,但另一個會作爲子模塊(GitHub上的綠色文件夾)被添加。無法將現有的Git存儲庫添加到新的存儲庫中

我試着通過做git rm --cached來刪除子模塊,但它仍然存在,我不能將項目的文件添加到存儲庫。

回答

1

您是否嘗試過使用新結帳功能?似乎沒有git submodule remove,所以您將不得不手動編輯.gitmodules

如果你想使用簽出的副本添加模塊X(這已經是版本控制)到模塊Y(這是新的):

  • 光盤放入X
  • 確保它是一個獨立模塊:不應該有任何.gitmodule(如果有的話,那麼它更復雜)。
  • 運行git status以確保您沒有任何未提交的更改。
  • 運行git clean -xfd擺脫什麼,就是在一些.gitignore,像臨時生成文件等
  • 刪除.git目錄
  • 複製X爲Y
  • 運行git add X內Y.

您也可以在X中執行諸如git clone path-to-Y之類的操作,然後再執行rm -rf Y/.git

+0

如果我在此存儲庫中發生了無法更改的變化,該怎麼辦?這是什麼情況,因爲之前的GitHub倉庫是私有的,它已過期,所以我無法推送更改。 – 8vius

+0

無論如何,這解決了我的問題。謝謝你,馬丁。 – 8vius

+0

您可以在本地提交,而不必推送更改。 但是,當然,您也可以在未提交更改的情況下進行復制。從沒有未提交更改的回購中複製只是使跟蹤歷史記錄變得更加容易 - 您可以在提交消息中包含修訂版本。 –

2
rm -rf path_to_submodule 
rm -rf .git/path_to_submodule 
rm .gitmodules 
git commit -am "removing submodule" 
git push 

.gitmodules應該是所沒有的 Ë.git/應該不會有裁判從子模塊

檢查有:

git ls-files | grep submodule_name 
find . | grep submodule_name 

最後:

git submodule add [email protected]:johndoe/johndoe_repo.git johndoe_branch/johndoe_repo --force 

--force是可選的,如果你有阿里亞dy文件系統中的文件夾

相關問題