這段時間一直在用GIT做本地自己寫的程序的源碼管理工具,在使用的過程中發現了一個問題:Git往往會把NuGet的packages文件夾作為項目的一部分給添加進來了。網上搜了一下,原因是GIT只是和文件夾相關,並沒有和項目相關聯,某個文件就算不在項目中,也會作為項目的一部分給提交。對於這些文件,則需要在.gitignore文件中排除,排除的語法也不算太復雜,具體的可以看看這篇文章。
比較人性化的是,VisualStudio已經預置好了這個文檔,這也是Debug等臨時文件夾默認情況下沒有被提交的原因。雖然也預留了Nuget文件夾的排除選項,但默認情況下並沒有放開。只需要將其放開即可。
但是,實際的使用過程中,發現把這個開關放開也不好使。究其原因:.gitignore對已經提交的文件是沒有效果的。也就是說,它只能針對未跟蹤的文件列表生效,並不能對包含的修改和排除的修改列表文件生效。而初次加入Git托管的時候已經把NuGet加入進來了,此時再編輯.gitignore文件也是沒有效果的。
正確的做法是:
-
將工程加入Git管理,此時會生成.gitignore文件。
-
查看更改的文件,會發現此時Nuget文件夾會被加進包含的修改列表來了,在文件夾上點擊右鍵選擇撤銷(並不會刪除文件),此時Nuget文件夾便會進入未跟蹤的文件列表中。
-
編輯.gitignore文件,加入Nuget排除項,此時它就會從未跟蹤的文件列表中清除掉了。