為什麼說.gitignore不能忽視
我注意到很多開發者沒有使用 .gitignore 檔案,儘管使用 .gitignore 檔案來指定你不希望 Git 在版本控制中跟蹤的檔案是最佳實踐之一。.gitignore 可以提高程式碼質量,所以你不應該忽略版本庫中的 .gitignore。 |
Git 倉庫中的檔案可以是:
- 未跟蹤的:未被暫存或提交的變更。
- 跟蹤的:已暫存或提交的變更。
- 忽略的:你讓 Git 忽略的檔案。
有些檔案你希望 Git 忽略,不要在你的版本庫中跟蹤它,這些檔案包括許多自動生成的或特定於平臺的檔案,以及其他本地配置檔案,如:
- 含有敏感資訊的檔案
- 編譯出的程式碼,如 .dll 或 .class。
- 系統檔案,如 .DS_Store 或 Thumbs.db。
- 含有臨時資訊的檔案,如日誌、快取等。
- 生成的檔案,如 dist 資料夾。
如果你不想讓 Git 跟蹤版本庫中的某些檔案,不過這不能透過 Git 做到。(雖然你可以用 git rm 停止跟蹤一個檔案,比如 git rm --cached。)相反,你需要使用 .gitignore 檔案,這是一個告訴 Git 不要跟蹤哪些檔案的文字檔案。
建立 .gitignore 檔案很簡單,只需建立一個文字檔案並命名為 .gitignore。記得在檔名的開頭有一個點(.)。就這樣就完成了。
根據文件,“.gitignore 檔案中的每一行都指定了一個模式。”
在此上下文中,“模式”可以指一個特定的檔名,或者指檔名的某些部分結合上萬用字元。換句話說,example.txt 是匹配名為 example.txt 的檔案的有效模式,而 ex*txt 是匹配名為 example.txt 以及 export.txt 的檔案的有效模式。
以下是一些幫助你正確設定 .gitignore 檔案的基本規則:
- 任何以雜湊(#)開頭的行都是註釋。
- \ 字元可以轉義特殊字元。
- / 字元表示該規則只適用於位於同一資料夾中的檔案和資料夾。
- 星號(*)表示任意數量的字元(零個或更多)。
- 兩個星號(**)表示任意數量的子目錄。
- 一個問號(?)代替零個或一個字元。
- 一個感嘆號(!)會反轉特定的規則(即包括了任何被前一個模式排除的檔案)。
- 空行會被忽略,所以你可以用它們來增加空間,使你的檔案更容易閱讀。
- 在末尾新增 / 會忽略整個目錄路徑。
有兩種型別的 .gitignore 檔案:
- 本地:放在 Git 倉庫的根目錄下,只在該倉庫中工作,並且必須提交到該倉庫中。
- 全域性:放在你的主目錄根目錄下,影響你在你的機器上使用的每個倉庫,不需要提交。
很多開發者在專案倉庫中使用本地的 .gitignore 檔案,但很少有人使用全域性的 .gitignore 檔案。使用全域性檔案最顯著的優勢是,你不需要提交就可以使用它,而且做一個改動會影響你所有的版本庫。
除了確保特定的檔案不被 Git 追蹤之外,使用 .gitignore 檔案還有其他好處。
- 透過忽略不需要的檔案,它可以幫助你保持程式碼庫的乾淨。
- 它可以控制程式碼庫的大小,這在你正在做一個大專案的時候特別有用。
- 你的每一次提交、推送和拉取請求都將是乾淨的。
Git 很強大,但歸根結底,它只是一個計算機程式而已。使用最佳實踐並保持你的程式碼倉庫穩定是一個團隊的努力,其中要做到一件事就是使用 .gitignore 檔案。
原文地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2714179/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 優思學院|為什麼六西格瑪團隊不能忽視DMAIC中的C?【案例分享】AI
- 新手不能忽視的MFC程式設計之CStringC程式程式設計
- CMO祕笈:不能忽視的6大品牌策略
- 為什麼說DOM操作很慢
- 什麼是框架?為什麼說 Angular 是框架?框架Angular
- 伺服器為什麼不能放在公司伺服器
- 為什麼pycharm下不能使用importPyCharmImport
- Java介面為什麼不能例項化Java
- 為什麼Facebook不能停止使用PHP?PHP
- 為什麼起床後不能收郵件?
- 為什麼不能當職業翻譯
- XDoclet為什麼不能生成介面檔案?
- NSACE|網路資訊保安技術,你不能忽視的存在
- 為什麼說 TCP 是安全的TCP
- 檢視v$sql_shared_cursor檢視獲取sql語句為什麼不能共享?SQL
- 為什麼不能和程式媛談戀愛?
- C#中為什麼不能繼承List?C#繼承
- google為什麼就不能退出中國Go
- 我為什麼說AI推理晶片大有可為AI晶片
- 說說我為什麼看好Spring Cloud AlibabaSpringCloud
- 為什麼說微軟遊戲未來可期微軟遊戲
- 為什麼說 HTTPS 是安全的?HTTP
- 為什麼說區塊鏈也不是什麼好東西?區塊鏈
- 為什麼前端不能沒有監控系統?前端
- Google搜尋為什麼不能無限分頁?Go
- 為什麼不能每週釋出一次?
- 為什麼不能修改自己釋出的帖子???
- 為什麼實體發展越來越難了?因為你忽視了智慧數字經營的重要性
- 從應用開發到營收 10個不能忽視的細節營收
- 說說webpack proxy工作原理?為什麼能解決跨域?Web跨域
- Sql Server之旅——第七站 為什麼都說狀態少的欄位不能建索引SQLServer索引
- 為什麼說 Serverless 是雲的未來?Server
- 為什麼說雲遊戲是未來戰略要塞?遊戲
- 為什麼說CDN有利於網站網站
- 為什麼說Docker 不適合跑 MySQL?DockerMySql
- 為什麼說 LINQ 要勝過 SQLSQL
- 為什麼說Java中只有值傳遞。Java
- 為什麼說Objective-C很難學?Object