git中 gitignore 忽略文件操作( 二 )


前面介紹了如何忽略以特定后綴結尾的所有文件 。如果您想要做一個例外,并且有一個帶有該后綴的文件不想忽略,會發生什么情況呢?
假設你在.gitignore文件中添加了以下內容:
.md該模式忽略所有以.md結尾的文件,但您不希望Git忽略README.md文件 。
要做到這一點,您需要使用帶有感嘆號的否定模式,!,來使該文件失效,否則該文件將會被忽略:
# ignores all .md files.md# does not ignore the README.md file!README.md對于.gitignore文件中的這兩種模式,所有以.md結尾的文件都會被忽略,除了README.md文件 。
要注意的是 , 如果忽略整個目錄 , 此模式將不起作用 。
假設你忽略了所有的測試目錄:
test/假設在一個測試文件夾中,有一個文件 , 例如.Md,你不想忽視的 。
你不能像這樣對一個被忽略的目錄中的文件進行否定:
# ignore all directories with the name testtest/# trying to negate a file inside an ignored directory won't work!test/example.md如何忽略之前提交的文件
最好的做法是創建一個.gitignore文件,其中包含創建新存儲庫時要忽略的所有文件和不同的文件模式——在提交之前 。
Git只能忽略尚未提交到存儲庫的未跟蹤文件 。
如果您在過去已經提交了一個文件,但希望沒有提交該怎么辦?
假設您不小心提交了一個存儲環境變量的.env文件 。
你首先需要更新.gitignore文件以包含.env文件:
# add .env file to .gitignoreecho ".env" >> .gitignore現在,你需要告訴Git不要跟蹤這個文件,把它從索引中刪除(如果是文件夾需要添加-r選項):
git rm --cached .envgit rm命令和--cached選項一起從存儲庫中刪除文件 , 但不刪除實際的文件 。這意味著該文件作為一個被忽略的文件保留在您的本地系統和工作目錄中 。
git status將顯示該文件已不在存儲庫中,而輸入ls命令將顯示該文件存在于本地文件系統中 。
如果希望從存儲庫和本地系統中刪除文件,請忽略--cached選項 。
接下來,使用git add命令將.gitignore添加到暫存區:
git add .gitignore最后,使用git commit命令提交.gitignore文件:
git commit -m "update ignored files"【git中 gitignore 忽略文件操作】

推薦閱讀