我想在父存盤庫中添加一個包含在嵌套 git 存盤庫中的檔案(我正在開發一個在我的專案中使用的庫)。但是git add nested_repo/myfile沒有做任何事情......我可以.git在提交時嘗試重命名檔案,但是當我重命名.git檔案夾時我害怕會發生奇怪的沖突。
我知道子模塊是處理嵌套 git 存盤庫的正確方法。不幸的是,在我的情況下,我將 git 與 Overleaf 結合使用(與共同作者共享 LaTeX 檔案并實時協作編輯它們)并且 overleaf 不處理子模塊(如果我嘗試使用子模塊推送專案,它只會失敗)。
知道我該如何處理嗎?
uj5u.com熱心網友回復:
在正確的答案是“不這樣做”。
我可以嘗試在提交時重命名 .git 檔案......
這確實有效:
mkdir test-subdirectory
cd test-subdirectory
git init
[... output, make initial commit, etc, here]
mkdir sub && (cd sub && git init && echo echo submodule > README &&
git add README && git commit -m initial-in-sub)
[output snipped]
在這一點上,創建sub/file和嘗試git add它沒有任何作用,至少在我在這里使用的 Git 版本中(一年左右過時):
git add sub/file
沒有錯誤但sub/file沒有添加(也沒有sub作為子模塊添加)。但:
mv sub/.git sub/notgit
git add sub/file
mv sub/notgit sub/.git
添加一個.gitignorefor sub, and git add .gitignore,git status --short現在說:
A .gitignore
A sub/file
但是當我重命名回 .git 檔案夾時,我擔心會發生奇怪的沖突。
這與其說是“奇怪的沖突”,而是頂層庫,現在包含的事實sub/file,其中sub/.git存在并且是一個倉庫,現在認為它有必要時要創建和銷毀目錄的權利sub和/或它的內容. 它確實做到了這一點:
$ git commit -m 'add sub/file'
[master d6c0cb6] add sub/file
2 files changed, 2 insertions( )
create mode 100644 .gitignore
create mode 100644 sub/file
$ git clean -dfx
Removing sub/README
盡管sub/README是subGit 存盤庫中的Git控制檔案,但仍會發生這種情況:
$ (cd sub; git status --short)
$ (cd sub;git status --short)
D README
?? file
總之,這種情況令人擔憂。不要這樣做。
uj5u.com熱心網友回復:
這不是真正的解決方案,但這是我最終要做的:因為我要管理的檔案很少(實際上......只有一個)我做了那個檔案的硬鏈接(符號鏈接不起作用,因為它們沒有被處理我想要的方式)到我專案中的另一個檔案。我稍微修改了代碼以包含這個新檔案。
到目前為止似乎作業正常。但是請記住,如果您將檔案夾復制到其他地方,則硬鏈接可能會消失,并且并非所有檔案系統(例如 FAT32)都支持它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/378715.html
標籤:混帐
