簡體   English   中英

.gitignore-忽略文件目錄

[英].gitignore - directory of ignore files

有什么方法可以創建.gitignore文件夾而不是文件? 這樣Git會將.gitignore / ignorerulesA和.gitignore / ignorerulesB都解析為忽略文件?

我可以看到這在我有兩個要合並的非重疊結構存儲庫的情況下很有用。

repoa
  filea
  foldera
  .gitignore/ignorea

repob
  fileb
  folderb
  .gitignore/ignoreb

通過這種結構,我可以合並repoa和repob而不會發生任何沖突。

如果這還不可能,請求此功能是否有意義?

我不確定我的問題的搜索結果是否如此差,因為:

  1. 也許這只是一個壞主意
  2. 我沒有正確的搜索詞“ .gitignore文件夾”,只是關於如何忽略文件夾的一堆指令。 “多個.gitignore文件”只是談論將.gitignores放置在不同的文件夾中。
  3. 我是一個屬,以前沒有人想到過。

更新:澄清

如果我們在上面的示例中采用了兩個存儲庫,並對每個存儲庫應用不同的.gitignore規則。

例如,在repoa中,我想忽略foldera,而在repob中,我想忽略fileb。 我最終遇到這種情況

repoa
  filea
  foldera
  .gitignore
    foldera

repob
  fileb
  folderb
  .gitignore
    fileb

現在我要創建倉庫。

mkdir repoab
cd repoab
git init
git remote add repoa /path/to/repoa
git remote add repob /path/to/repob
git pull repoa master
git pull repob master
rom ../repob
 * branch            master     -> FETCH_HEAD
Auto-merging .gitignore
CONFLICT (add/add): Merge conflict in .gitignore
Automatic merge failed; fix conflicts and then commit the result.

基本上,每次我處理repoa或repob的更新時,我都必須處理這種沖突,這當然不是理想的。

您可以使用<directoryname>/忽略目錄。

在您的示例中,添加file*/將忽略兩個文件夾,並且如果您嘗試合並2個倉庫/分支,則不會發生合並沖突。

當您搜索“多個.gitignore文件”時,可以將不同的文件放在不同的目錄中,但是Git不在一個目錄中處理多個.gitignore文件。 通常,Git在您的pwd尋找這樣的配置文件,然后爬到父目錄,直到找到一個或到達根目錄為止。 該策略與擁有包含多個配置文件的特殊目錄沒有關系。

盡管這不能解決您的合並問題(我認為您需要子模塊 ),但是您可以為其他協作者不需要忽略的諸如編輯器交換文件之類的內容設置全局.gitignore 我在~/.gitignore有一個,告訴Git在~/.gitconfig閱讀它:

[core]
  excludesfile = /Users/kristjan/.gitignore

通過這種結構,我可以合並repoa和repob而不會發生任何沖突。

但是你不能。 .gitignore文件可以具有排除項,即使沒有這些排除項,一個回購也可能會期望包含某些類型的文件,而另一個則希望它們會生成(因此忽略它們)。 順序很重要。

您可以將.gitignore放入應用於它們的樹中, foldera/.gitignore等等。 這對頂級文件沒有幫助,但是如果那里的規范沖突,那么那里的文件也會沖突,因此,忽略混亂並不是真正的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM