30 天精通 Git 版本控管

 主页   资讯   文章   代码   电子书 

第 19 天:设定 .gitignore 忽略清单

在开发专案时,工作目录下可能经常会有新的档案产生 (可能是透过 Visual Studio 工具产生的那些暂存档案或快取档案),可能有许多档案并不需要列入版本控管,所以必须要排除这些档案,我们称为「忽略清单」。

关于 .gitignore 档案

在 Git 裡面,是透过 .gitignore 档案来进行定义「忽略清单」,主要的目的是排除一些不需要加入版控的档案,列在裡面的档名或路径 (可包含万用字元),都不会出现在 git status 的结果中,自然也不会在执行 git add 的时候被加入。不过,这仅限于 Untracked file 而已,那些已经列入版控的档案 (Staged file),不受 .gitignore 档案控制。

透过 GitHub 建立预设的忽略清单

如果你曾经在 GitHub 建立过专案,可能会用过这个功能,就在建立新的储存库(Repository)时,可以让你选择 GitHub 预先帮你定义好的忽略清单,这个忽略清单其实就只是一个档案而已,其档名为 .gitignore,并预设置于专案跟目录下。

image

我们以上图这个 CSharp 专案为例,建立完成后,在储存库中就会出现一个预设的 .gitignore 档案:

image

我们可以看看其内容:https://github.com/doggy8088/sandbox-csharp/blob/master/.gitignore

# Build Folders (you can keep bin if you'd like, to store dlls and pdbs)
[Bb]in/
[Oo]bj/

# mstest test results
TestResults

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.

# User-specific files
*.suo
*.user
*.sln.docstates

# Build results
[Dd]ebug/
[Rr]elease/
x64/
*_i.c
*_p.c
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.log
*.vspscc
*.vssscc
.builds

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf

# Visual Studio profiler
*.psess
*.vsp
*.vspx

# Guidance Automation Toolkit
*.gpState

# ReSharper is a .NET coding add-in
_ReSharper*

# NCrunch
*.ncrunch*
.*crunch*.local.xml

# Installshield output folder 
[Ee]xpress

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish

# Publish Web Output
*.Publish.xml

# NuGet Packages Directory
packages

# Windows Azure Build Output
csx
*.build.csdef

# Windows Store app package directory
AppPackages/

# Others
[Bb]in
[Oo]bj
sql
TestResults
[Tt]est[Rr]esult*
*.Cache
ClientBin
[Ss]tyle[Cc]op.*
~$*
*.dbmdl
Generated_Code #added for RIA/Silverlight projects

# Backup & report files from converting an old project file to a newer
# Visual Studio version. Backup files are not needed, because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML

这些内容,真的就是在用 Visual Studio 写 CSharp 专案时常见的「忽略清单」,非常具有实用价值,如果各位还有一些额外的档案名称或路径要加入,也可以自行添加在这个档案裡面。

参考其他程式语言的 .gitignore 内容范本

在 GitHub 上面,事实上还提供了很多其他开发环境所需的 .gitignore 范本,也都非常值得参考:

image

今日小结

今天的 .gitignore 档案,我们几乎每个专案都会用到,算是使用 Git 时一个必备的重要档案。

参考链接