2015-07-21 91 views
1

基本上,在主題行中的問題,默認情況下,Git會忽略自己的Git回購目錄嗎?默認情況下,Git會忽略自己的Git回購目錄嗎?

我在問,因爲我在一個文件夾中創建了一個Git倉庫,其中包含一些子文件夾中的其他一些倉庫,以及其他一些我想跟蹤的文件。

我很驚訝地發現新的Git倉庫似乎會自動忽略子目錄中那些Git倉庫的文件。

回答

2

是的,這是Git的一個特性。如果您初始化子文件夾中的Git存儲庫,然後嘗試將該文件夾添加到父文件夾的Git存儲庫,該文件夾的Git歷史記錄將不包含子文件夾的文件。

您可以修改這些文件並嘗試添加它們,但您會收到類似modified: some_dir (modified content, untracked content)的消息。只有目錄名稱將被跟蹤。

創建子模塊來解決這種常見的情況。它們允許您將Git存儲庫作爲另一個Git存儲庫的子目錄。如果你需要跟蹤父文件夾和子文件夾,子模塊會讓你做到這一點。

This documentation提供了一步一步的指導。

+0

謝謝!這解釋了我所看到的行爲! – timbram

-1

默認情況下,Git會假定你的項目是一個整體,並將包含所有的文件夾(即使它們是單獨的項目)。如果你想擁有它們視爲獨立的,你可以設置一個子文件夾的子模塊:

$ cd MainProject 
$ git submodule add [email protected]:me/apps.git apps 
$ git commit -a -m "added a submodule" 
$ git push 

您可以通過以下網址瞭解更多關於他們:

https://git-scm.com/book/en/v2/Git-Tools-Submodules