iT邦幫忙

DAY 19
4

30天精通Git版本控管系列 第 19

30 天精通 Git 版本控管 (19):設定 .gitignore 忽略清單

在開發專案時,工作目錄下可能經常會有新的檔案產生 (可能是透過 Visual Studio 工具產生的那些暫存檔案或快取檔案),可能有許多檔案並不需要列入版本控管,所以必須要排除這些檔案,我們稱為「忽略清單」。
關於 .gitignore 檔案

在 Git 裡面,是透過 .gitignore 檔案來進行定義「忽略清單」,主要的目的是排除一些不需要加入版控的檔案,列在裡面的檔名或路徑 (可包含萬用字元),都不會出現在 git status 的結果中,自然也不會在執行 git add 的時候被加入。不過,這僅限於 Untracked file 而已,那些已經列入版控的檔案 (Staged file),不受 .gitignore 檔案控制。

透過 GitHub 建立預設的忽略清單

如果你曾經在 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 專案時常見的「忽略清單」,非常具有實用價值,如果各位還有一些額外的檔案名稱或路徑要加入,也可以自行添加在這個檔案裡面。

參考其他程式語言的 .gitignore 內容範本

在 GitHub 上面,事實上還提供了很多其他開發環境所需的 .gitignore 範本,也都非常值得參考:

今日小結

今天的 .gitignore 檔案,我們幾乎每個專案都會用到,算是使用 Git 時一個必備的重要檔案。

參考連結

* [gitignore(5) Manual Page]
http://git-scm.com/docs/gitignore)
* [請勿將某些檔案類型的檔案簽入到 Subversion 版本庫 (二版)]
http://blog.miniasp.com/post/2012/03/30/Do-not-commit-these-file-type-into-subversion-repository-2.aspx


上一篇
30 天精通 Git 版本控管 (18):修正 commit 過的版本歷史紀錄 Part 1
下一篇
30 天精通 Git 版本控管 (20):修正 commit 過的版本歷史紀錄 Part 2
系列文
30天精通Git版本控管30

尚未有邦友留言

立即登入留言