使 GIT 忽略/删除 DLL、PDB 和类似的生成文件 [英] Make GIT ignore/remove DLL,PDB and similar generated files
问题描述
我在说服 GIT 输入生成的文件时遇到问题
I have issues convicing GIT to ingore generated files
这是我想忽略的文件的示例
Here is an example of the files that I want to ignore
modified: BLLTarifario/bin/Debug/BLLTarifario.dll
modified: BLLTarifario/bin/Debug/BLLTarifario.pdb
modified: BLLTarifario/bin/Debug/Corte.Library.dll
modified: BLLTarifario/bin/Debug/Corte.Library.pdb
modified: BLLTarifario/obj/Debug/BLLTarifario.csprojResolveAssemblyReference.cache
modified: BLLTarifario/obj/Debug/BLLTarifario.dll
modified: BLLTarifario/obj/Debug/BLLTarifario.pdb
modified: Corte.Library/bin/Debug/Corte.Library.dll
modified: Corte.Library/bin/Debug/Corte.Library.pdb
modified: Corte.Library/obj/Debug/Corte.Library.csprojResolveAssemblyReference.cache
modified: Corte.Library/obj/Debug/Corte.Library.dll
modified: Corte.Library/obj/Debug/Corte.Library.pdb
modified: Tarifario.Site/bin/BLLTarifario.dll
modified: Tarifario.Site/bin/BLLTarifario.pdb
modified: Tarifario.Site/bin/Corte.Library.dll
modified: Tarifario.Site/bin/Corte.Library.pdb
modified: Tarifario.Site/bin/Tarifario.Site.dll
modified: Tarifario.Site/bin/Tarifario.Site.pdb
modified: Tarifario.Site/obj/Debug/Tarifario.Site.csprojResolveAssemblyReference.cache
modified: Tarifario.Site/obj/Debug/Tarifario.Site.dll
modified: Tarifario.Site/obj/Debug/Tarifario.Site.pdb
modified: TestValidate/bin/Debug/BLLTarifario.dll
modified: TestValidate/bin/Debug/BLLTarifario.pdb
modified: TestValidate/bin/Debug/Corte.Library.dll
modified: TestValidate/bin/Debug/Corte.Library.pdb
modified: TestValidate/bin/Debug/TestValidate.exe
modified: TestValidate/bin/Debug/TestValidate.pdb
modified: TestValidate/obj/x86/Debug/TestValidate.csprojResolveAssemblyReference.cache
modified: TestValidate/obj/x86/Debug/TestValidate.exe
modified: TestValidate/obj/x86/Debug/TestValidate.pdb
这里是 .gitignore
/build/
*.suo
*.user
_ReSharper.*/
*.sdf
bin/
obj/
Debug/
Release/
*.opensdf
*.tlog
*.log
TestResult.xml
*.VisualState.xml
Version.cs
Version.h
Version.cpp
*/bin/*
*/obj/*
推荐答案
在将规则添加到 .gitignore
文件之前,您似乎已经提交了这些文件.Git 将继续监控已经被跟踪的文件.
It looks like you had these files already committed before you added your rules to the .gitignore
file. Git will continue to monitor files that are already being tracked.
您需要在删除这些文件的地方进行提交,然后它们应该被忽略.
You'll need to make a commit where you remove these files, then they should be ignored afterwards.
要递归删除文件夹及其内容,请使用git rm -r
,例如:
To remove a folder and it's contents recursively, use git rm -r
, for example:
git rm -r "./BLLTarifario/bin/"
您需要为要删除的每个 bin
和 obj
目录执行此操作.
You'll need to do this for each of the bin
and obj
directories that you want to delete.
或者,您可以删除文件夹(因为它们将在编译时重建)并再次运行 git add -A
以暂存已删除的更改.请参阅:暂存已删除的文件
Optionally, you can delete the folders (since they'll be rebuilt at compile time) and run git add -A
again to stage the deleted changes. See: Staging Deleted files
因为我只需要从 REPO 中删除它们,所以我对每个文件都运行这个命令
Since I only needed to remove them from the REPO I run this command for every single file
git rm --cached BLLTarifario/bin/Debug/BLLTarifario.dll
最后的 .gitignore 文件就是这个
And the final .gitignore file is this
*.cache
*.dll
*.exe
*.pdb
/build/
*.suo
*.user
_ReSharper.*/
*.sdf
*.opensdf
*.tlog
*.log
TestResult.xml
*.VisualState.xml
Version.cs
Version.h
Version.cpp
这篇关于使 GIT 忽略/删除 DLL、PDB 和类似的生成文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!