![](/img/trans.png)
[英].gitignore How to ignore first level files in a directory but not sub-files?
[英].gitignore - directory of ignore files
有什么方法可以創建.gitignore文件夾而不是文件? 這樣Git會將.gitignore / ignorerulesA和.gitignore / ignorerulesB都解析為忽略文件?
我可以看到這在我有兩個要合並的非重疊結構存儲庫的情況下很有用。
repoa
filea
foldera
.gitignore/ignorea
repob
fileb
folderb
.gitignore/ignoreb
通過這種結構,我可以合並repoa和repob而不會發生任何沖突。
如果這還不可能,請求此功能是否有意義?
我不確定我的問題的搜索結果是否如此差,因為:
更新:澄清
如果我們在上面的示例中采用了兩個存儲庫,並對每個存儲庫應用不同的.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.