使GIT忽略DLL,PDB和类似的生成文件

时间:2015-07-21 15:56:02

标签: git visual-studio

我有问题让GIT知道ingore生成的文件

以下是我要忽略的文件示例

    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/*

3 个答案:

答案 0 :(得分:21)

在将规则添加到.gitignore文件之前,您似乎已经提交了这些文件。 Git将继续监控已经被跟踪的文件。

您需要在删除这些文件的位置进行提交,之后应该忽略它们。

修改:要递归删除文件夹及其内容,请使用git rm -r,例如:

git rm -r "./BLLTarifario/bin/"

您需要为要删除的每个binobj目录执行此操作。

或者,您可以删除文件夹(因为它们将在编译时重建)并再次运行git add -A以暂存已删除的更改。请参阅:Staging Deleted files

由于我只需要从REPO中删除它,我为每个文件运行此命令

git rm --cached BLLTarifario/bin/Debug/BLLTarifario.dll

最终的 .gitignore 文件就是这个

*.cache
*.dll
*.exe
*.pdb
/build/
*.suo
*.user
_ReSharper.*/
*.sdf
*.opensdf
*.tlog
*.log
TestResult.xml
*.VisualState.xml
Version.cs
Version.h
Version.cpp

答案 1 :(得分:3)

如果你把

放到了什么地方
.dll
.pdb
.cache
.exe

进入 .gitignore 文件。

答案 2 :(得分:0)

它只会忽略它们,您需要执行git rm -r [/bin]的原因是从git跟踪中删除文件,只需在跟踪后将它们添加到.gitignore文件中,就不会停止git将后续更改推送到您的git仓库