之間的唯一區別.gitignore是行首的空格,它似乎使該行被忽略。為什么結果不一樣。我添加了對齊的空間。
Git檔案夾樹結構:
.
└── d1
├── d11
│ ├── f1
│ └── f2
├── d12
│ ├── f1
│ └── f2
└── f1
首先.gitignore:
/*
!d1
d1/*
!/d1/d11
第一個可暫存的檔案:
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: d1/d11/f1
new file: d1/d11/f2
第二個.gitignore:(注意第三條規則的區別)
/*
!d1
d1/*
!/d1/d11
第二階段的檔案:
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: d1/d11/f1
new file: d1/d11/f2
new file: d1/d12/f1
new file: d1/d12/f2
new file: d1/f1
這是我執行的影像,我希望結果應該是一樣的。
錯誤的直覺可能來自這條規則,它沒有提到起始空間。我確實看到了尾隨這個詞。
Trailing spaces are ignored unless they are quoted with backslash ("\").
uj5u.com熱心網友回復:
d1/*和之間的區別在于 d1/*,第一個忽略命名檔案夾d1下的所有內容,第二個忽略該' d1'檔案夾下的所有內容。
這背后的原因是檔案夾可以以空格開頭。
所以這兩個.gitignore檔案匹配不同的檔案夾。因此,為什么第二個包含d1檔案夾下的所有內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/453501.html
