在开发专案时,工作目录下可能经常会有新的档案产生 (可能是透过 Visual Studio 工具产生的那些暂存档案或快取档案),可能有许多档案并不需要列入版本控管,所以必须要排除这些档案,我们称为「忽略清单」。
在 Git 裡面,是透过 .gitignore 档案来进行定义「忽略清单」,主要的目的是排除一些不需要加入版控的档案,列在裡面的档名或路径 (可包含万用字元),都不会出现在 git status 的结果中,自然也不会在执行 git add 的时候被加入。不过,这仅限于 Untracked file 而已,那些已经列入版控的档案 (Staged file),不受 .gitignore 档案控制。
.gitignore
git status
git add
Untracked file
Staged file
如果你曾经在 GitHub 建立过专案,可能会用过这个功能,就在建立新的储存库(Repository)时,可以让你选择 GitHub 预先帮你定义好的忽略清单,这个忽略清单其实就只是一个档案而已,其档名为 .gitignore,并预设置于专案跟目录下。
我们以上图这个 CSharp 专案为例,建立完成后,在储存库中就会出现一个预设的 .gitignore 档案:
我们可以看看其内容: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 专案时常见的「忽略清单」,非常具有实用价值,如果各位还有一些额外的档案名称或路径要加入,也可以自行添加在这个档案裡面。
在 GitHub 上面,事实上还提供了很多其他开发环境所需的 .gitignore 范本,也都非常值得参考:
今天的 .gitignore 档案,我们几乎每个专案都会用到,算是使用 Git 时一个必备的重要档案。
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8