在開發中。有的時候我們可能在項目目錄下用git從網路下引入了另外的git庫。
如。我用vendor目錄來存放我的golang依賴庫時。因為golang.org 這個目錄下的庫在國內是很難通過正常方式擷取到,經常在go get 的時候報錯。所以我們通常都是同github上面手工clone 下來,然後拷貝到golang.org這個目錄。
golang.org.png
當我使用git add 添加進來。會給我報錯。
add.png
warning: adding embedded git repository: vendor/golang.org/x/cryptohint: You've added another git repository inside your current repository.hint: Clones of the outer repository will not contain the contents ofhint: the embedded repository and will not know how to obtain it.hint: If you meant to add a submodule, use:hint:hint: git submodule add <url> vendor/golang.org/x/cryptohint:hint: If you added this path by mistake, you can remove it from thehint: index with:hint:hint: git rm --cached vendor/golang.org/x/cryptohint:hint: See "git help submodule" for more information.warning: adding embedded git repository: vendor/golang.org/x/lintwarning: adding embedded git repository: vendor/golang.org/x/netwarning: adding embedded git repository: vendor/golang.org/x/syswarning: adding embedded git repository: vendor/golang.org/x/textwarning: adding embedded git repository: vendor/golang.org/x/tools
意思就是我們項目下嵌套了其它庫。這裡提示我們要麼使用submodule來管理這個嵌套的git庫,要麼把這個庫刪除。我只想簡單的把這個依賴和項目一起提交而已。要不要這樣子?
刪檔案的解決方案
進入到每個目錄下,把.git 這個目錄刪了。這樣就可以繼續提交代碼了。
rm -rf vendor/golang.org/x/lint/.gitrm -rf vendor/golang.org/x/net/.git rm -rf vendor/golang.org/x/sys/.git rm -rf vendor/golang.org/x/text/.git rm -rf vendor/golang.org/x/tools/.git
彩蛋,look。我們又可以繼續提交代碼了,真開心,生活就該這麼美好。
ojbk.png
submodule方式解決方案
還未研究,據說有點麻煩。
忽略檔案解決方案
把這個目錄寫進.gitignore檔案就好