-- 通过.gitignore设置Git忽略所有obj和bin目录下的文件(含设置无效时的特殊处理)
【官网】:https://git-scm.com/
应用场景
通过git管理代码版本时,经常需要忽略一些文件或目录,比如一些bin,obj这些调试目录。基础资源
git工具
使用须知
需要梳理好项目下哪些文件或目录是可以忽略的(一般是所有开发者下载后都能本地编译生成的内容). 否则将影响团队开发协作(少了一些必要文件时)
配置步骤
【A.为什么要忽略某些文件?】
1)避免一些涉及本机环境的配置被提交。
2)避免编译输出的临时文件提交后,团队别的开发者更新到本地,提示一堆冲突问题。
3)避免大量编译的临时文件被认为是版本更新,进而造成网络开销增大,增加了版本呢提交的时间成本,降低了提交版本的效率。
【B.git中如何忽略指定目录或文件?】
Git里的忽略文件功能可以通过一个.gitignore文件来实现,可以直接手工新建该文件,文件内容如下:
## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. # User-specific files *.suo *.user *.userosscache *.sln.docstates # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs # Build results [Dd]ebug/ [Dd]ebugPublic/ [Rr]elease/ [Rr]eleases/ x64/ x86/ bld/ [Bb]in/ [Oo]bj/ [Ll]og/ # Visual Studio 2015 cache/options directory .vs/ # Uncomment if you have tasks that create the
[注]参考自官方推荐: https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
【C.设置上述.gitignore文件后依然不起作用,怎么办?】
一般来说,.gitignore文件只对尚未加入到git版本控制的目录或文件起作用。 对于已经加入git版本的情况我们可以进行如下操作(以.net解决方案为例,其它语言根据情况修改通配符):
step1)清理待忽略的文件:运行如下批处理文件实现清理编译输出的临时目录和文件.
@echo off set nowPath=%cd% cd / cd %nowPath% ::delete specify file(*.pdb,*.vshost.*) for /r %nowPath% %%i in (*.pdb,*.vshost.*,*.log) do (del %%i) ::delete specify folder(obj,bin) for /r %nowPath% %%i in (obj,bin) do (IF EXIST %%i RD /s /q %%i) echo OK pause
注:
1、批处理中两个半角冒号开头表示注释掉这一行
2、将以上代码复制到记事本中,并且命名为bat后缀的文件,如 ClearDebug.bat.
3、ClearDebug.bat最好放到要执行删除操作的目录(或上层目录)
如果只要删除某个文件,可以将for /r %nowPath% %%i in (obj,bin) do (IF EXIST %%i RD /s /q %%i) 这一句去掉,然后将for /r %nowPath% %%i in (*.pdb,*.vshost.*) do (del %%i) 这一句中的(*.pdb,*.vshost.*)改成要删除的文件。
step2)提交删除操作到版本管理。
step3)增加上述指定的.gitignore文件(已存在则忽略此步).
step4)编译之后,再次提交(可以验证忽略的效果).
常见问题
快速入门
无