從像這里這樣的其他答案中,我了解到這會導致嵌套存盤庫。看起來怎么樣?可以在它們之間切換當它們都具有相同的名稱時它是如何作業的?
我錯誤地這樣做了,它看起來好像原來的被覆寫了。.gitignore 被替換,我只看到新存盤庫的分支,而舊存盤庫的檔案顯示在作業目錄中。
uj5u.com熱心網友回復:
該git clone命令拒絕在占用的目錄中運行。
默認 git clone操作:
git clone <url>
創建一個新的空目錄,以便新克隆不使用占用的目錄。但是,您可以撰寫:
git clone <url> <path>
告訴git clone使用指定的path. 在這種情況下,path必須命名一個現有的空目錄或能夠創建為一個空目錄。空目錄將由 填充git clone。如果path引數命名一個存在且不為空的目錄,則git clone拒絕運行。
當普通的日常存盤庫的作業樹包含一個本身就是另一個 Git 存盤庫的作業樹的目錄時,就會出現“嵌套”存盤庫。
例如,假設您運行:
git clone https://github.com/git/git.git
為 Git創建./gitGit 存盤庫克隆的作業樹,然后:
cd git
進入這個作業樹。使用“顯示隱藏檔案”檢查樹(例如,ls -A在 Linux 系統上),您會看到這里有一個.git目錄。這個隱藏.git目錄包含實際的存盤庫;git您進入的頂層cd git包含作業樹。
如果您現在運行:
git clone <other-url> project
project并在作業樹中創建了一個新目錄,運行ls -A project或類似的會告訴你project,也包含一個.git目錄。該project目錄是另一個存盤庫的作業樹。
現在運行git add project(這將列印一條巨大的警告訊息),然后運行git commit,會將gitlink添加到 Git 的 Git 存盤庫。gitlink 是子模塊的一半。此時缺少的一半是.gitmodules檔案,它git submodule add本來可以創建,但運行git add project卻沒有。這是一個根本性的錯誤:此時創建的提交具有我喜歡稱之為“半途而廢的子模塊”,無法合理使用。這就是為什么git add project會列印出巨大的警告資訊。(如果完全拒絕添加它可能會更好git add project,真的,但這不會向后兼容,而且 Git 人員非常重視一次向后兼容數十年。)
那么,無論您的實際問題是什么,這都是您在這里沒有正確描述的問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/515658.html
標籤:混帐
