1. 程式人生 > >Github使用.gitignore檔案忽略不必要上傳的檔案

Github使用.gitignore檔案忽略不必要上傳的檔案

(1).gitignore介紹

 在工程實現過程中,會生成一些中間檔案,或者在專案中的部分檔案是不需要進行版本管理的。對於這些檔案應該對於Github來講是透明的。Github提供這種功能,可以自己指定哪些檔案可以不被管理。具體方法是在版本管理的根目錄下(與.git資料夾同級)建立一個  .gitignore(gitignore是隱藏檔案,所以前面有個點){在進行協作開發程式碼管理的過程中,常常會遇到某些臨時檔案、配置檔案、或者生成檔案等,這些檔案由於不同的開發端會不一樣,如果使用git add . 將所有檔案納入git庫中,那麼會出現頻繁的改動和push,這樣會引起開發上的不便。Git可以很方便的幫助我們解決這個問題,那就是建立專案檔案過濾規則。

Git可以很方便的幫助我們解決這個問題,那就是建立專案檔案過濾規則。git中提供兩種過濾機制,一種是全域性過濾機制,即對所有的git都適用;另一種是針對某個專案使用的過濾規則。個人傾向於第二種。以我的一個專案為例,該專案用.net開發,.config檔案、包括生成的bin/Debug, bin/Release檔案等,

我希望不加入git管理。
在程式碼目錄下建立.gitignore檔案:vim .gitignore ,內容如下:
[plain] view plaincopy
#過濾資料庫檔案、sln解決方案檔案、配置檔案  
*.mdb  
*.ldb  
*.sln  
*.config  

#過濾資料夾Debug,Release,obj  
Debug/  
Release/  
obj/  
然後呼叫git add. ,執行 git commit即可。

}

方式一:

首先要強調一點,這個檔案的完整檔名就是“.gitignore”,注意最前面有個“.”。這樣沒有副檔名的檔案在Windows下不太好建立,這裡給出win7的建立方法:

建立一個檔案,檔名為:“.gitignore.”,注意前後都有一個點。儲存之後系統會自動重新命名為“.gitignore”。

一般來說每個Git專案中都需要一個“.gitignore”檔案,這個檔案的作用就是告訴Git哪些檔案不需要新增到版本管理中。

實際專案中,很多檔案都是不需要版本管理的,比如Python的.pyc檔案和一些包含密碼的配置檔案等等。

這個檔案的內容是一些規則,Git會根據這些規則來判斷是否將檔案新增到版本控制中。

下面我們看看常用的規則:

  • /mtk/ 過濾整個資料夾

  • *.zip 過濾所有.zip檔案

  • /mtk/do.c 過濾某個具體檔案

很簡單吧,被過濾掉的檔案就不會出現在你的GitHub庫中了,當然本地庫中還有,只是push的時候不會上傳。

需要注意的是,gitignore還可以指定要將哪些檔案新增到版本管理中:

  • !*.zip

  • !/mtk/one.txt

唯一的區別就是規則開頭多了一個感嘆號,Git會將滿足這類規則的檔案新增到版本管理中。

為什麼要有兩種規則呢?想象一個場景:我們只需要管理/mtk/目錄中的one.txt檔案,這個目錄中的其他檔案都不需要管理。那麼我們就需要使用:

  • /mtk/

  • !/mtk/one.txt

假設我們只有過濾規則沒有新增規則,那麼我們就需要把/mtk/目錄下除了one.txt以外的所有檔案都寫出來!

最後需要強調的一點是,如果你不慎在建立.gitignore檔案之前就push了專案,那麼即使你在.gitignore檔案中寫入新的過濾規則,這些規則也不會起作用,Git仍然會對所有檔案進行版本管理。

簡單來說,出現這種問題的原因就是Git已經開始管理這些檔案了,所以你無法再通過過濾規則過濾它們。

所以大家一定要養成在專案開始就建立.gitignore檔案的習慣,否則一旦push,處理起來會非常麻煩。

方式二:
就是新建.gitignore然後再裡面宣告要忽略的資料夾或者檔案就可以了,不過麻煩又來了,因為是點開頭,沒有檔名,沒辦法直接在windows目錄下直接建立,必須通過右鍵Git Bash,按照linux的方式來新建.gitignore檔案。具體步驟如下:

1. 在需要建立  .gitignore 檔案的資料夾, 右鍵選擇

Git Bash 進入命令列,進入專案所在目錄。

2. 輸入 touch .gitignore 在資料夾就生成了一個“.gitignore”檔案。

然後在”.gitignore” 檔案裡輸入你要忽略的資料夾及其檔案就可以了。

3.然後用編輯器開啟這個檔案進行編輯就行了。如果你很牛,熟悉linux下的vi編輯的命令,也可以用命令來宣告規則額。在這裡就不說了額,
附: vi編輯器的怎麼換行呢?

總結:vi儲存退出命令x和wq的區別

蒐集:不會linux下vi命令,傷不起啊

4.然後就寫規則來操作要忽略的檔案了。.gitignore檔案過濾有兩種模式,開放模式和保守模式

4.1開放模式負責設定過濾哪些檔案和資料夾

eg:

過濾資料夾設定:

/mtk/       表示過濾這個資料夾

過濾檔案設定

指定過濾某種型別的檔案:
*.zip
*.rar
*.via
*.tmp
*.err

指定過濾某個檔案:
/mtk/do.c

/mtk/if.h

4.2 b保守模式負責設定哪些檔案不被過濾,也就是哪些檔案要被跟蹤。
跟蹤某個資料夾

!/plutommi/mmi

跟蹤某類檔案

!*.c

!*.h

跟蹤某個指定檔案

!/plutommi/mmi/mmi_features.h

4.3.配置.gitignore 的簡易原則

採用共享模式與保守模式結合配置的辦法。eg:一個資料夾下有很多資料夾和檔案,而我只想跟蹤其中的一個檔案,這樣設定就可以滿足這種情況,先用共享模式把整個目錄 都設定為不跟蹤,然後再用保守模式把這個資料夾中想要跟蹤的檔案設定為被跟蹤,配置很簡單,就可以跟蹤想要跟蹤的檔案。
方式三:

.gitignore 配置檔案用於配置不需要加入版本管理的檔案,配置好該檔案可以為我們的版本管理帶來很大的便利,以下是個人對於配置 .gitignore 的一些心得。

1、配置語法:

  以斜槓“/”開頭表示目錄;

  以星號“*”通配多個字元;

  以問號“?”通配單個字元

  以方括號“[]”包含單個字元的匹配列表;

  以歎號“!”表示不忽略(跟蹤)匹配到的檔案或目錄;

  此外,git 對於 .ignore 配置檔案是按行從上到下進行規則匹配的,意味著如果前面的規則匹配的範圍更大,則後面的規則將不會生效;

2、示例:

  (1)規則:fd1/*
      說明:忽略目錄 fd1 下的全部內容;注意,不管是根目錄下的 /fd1/ 目錄,還是某個子目錄 /child/fd1/ 目錄,都會被忽略;

  (2)規則:/fd1/*
      說明:忽略根目錄下的 /fd1/ 目錄的全部內容;

  (3)規則:

/*
!.gitignore
!/fw/bin/
!/fw/sf/

說明:忽略全部內容,但是不忽略 .gitignore 檔案、根目錄下的 /fw/bin/ 和 /fw/sf/ 目錄;

方式四:
# cat .gitignore 
*.[oa] 
*~
      第一行告訴 Git 忽略所有以 .o 或 .a 結尾的檔案。一般這類物件檔案和存檔檔案都是編譯過程中出現的,我們用不著跟蹤它們的版本。第二行告訴 Git 忽略所有以波浪符(~)結尾的檔案,許多文字編輯軟體(比如 Emacs)都用這樣的檔名儲存副本。此外,你可能還需要忽略 log,tmp 或者 pid 目錄,以及自動生成的文件等等。要養成一開始就設定好 .gitignore 檔案的習慣,以免將來誤提交這類無用的檔案。

檔案 .gitignore 的格式規範如下:
  • 所有空行或者以註釋符號 # 開頭的行都會被 Git 忽略
  • 可以使用標準的 glob 模式匹配
  • 匹配模式最後跟反斜槓(/)說明要忽略的是目錄
  • 要忽略指定模式以外的檔案或目錄,可以在模式前加上驚歎號(!)取反。
      所謂的 glob 模式是指 shell 所使用的、簡化了的正則表示式。星號(*)匹配零個或多個任意字元;[abc] 匹配任何一個列在方括號中的字元(這個例子要麼匹配一個 a,要麼匹配一個 b,要麼匹配一個 c);問號(?)只匹配一個任意字元;如果在方括號中使用短劃線分隔兩個字元,表示所有在這兩個字元範圍內的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的數字)。

我們再看一個 .gitignore 檔案的例子:
# 忽略所有 .a 結尾的檔案
*.a
# 但 lib.a 除外
!lib.a
# 僅僅忽略專案根目錄下的 TODO 檔案,不包括 subdir/TODO
/TODO
# 忽略 build/ 目錄下的所有檔案
build/
# 會忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
其他資訊可以直接 man gitignore 檢視。


相關推薦

Github使用.gitignore檔案忽略必要檔案

(1).gitignore介紹  在工程實現過程中,會生成一些中間檔案,或者在專案中的部分檔案是不需要進行版本管理的。對於這些檔案應該對於Github來講是透明的。Github提供這種功能,可以自己指定哪些檔案可以不被管理。具體方法是在版本管理的根目錄下(與.git資料夾同

Visual Studio使用Git忽略到遠端倉庫的檔案

前言:       作為一個.NET開發者而已,有著宇宙最強IDE:Visual Studio加持,讓我們的開發效率得到了更好的提升。我們不需要擔心環境變數的配置和其他程式碼管理工具,因為VS有豐富的拓展工具。廢話不多說,直接進入正題。我們日常在使用VS開發相關的.NE

idea中使用.ignore外掛忽略必要提交的檔案

1、File->Settings  2、在左側選單找到Plugins,點選Browse repositories 3、搜尋.ignore,點選Install  安裝後重啟 4、在model上右鍵->New ->.ignore file ->.gi

如何在IntelliJ IDEA中使用.ignore外掛忽略必要提交的檔案

最近初學Git,而且在使用的IDE是IntelliJ IDEA,發現IDEA在提交專案到本地倉庫的時候,會把.idea資料夾中的內容也提交上去,這裡面放的是一些專案的配置資訊,包括歷史記錄,版本控制資訊等。可以不傳到Git上面去。 這個時候就需要編寫.giti

IE input file隱藏檔案解決方法

轉載至:http://www.qttc.net/201305334.html 又是IE的一個問題,近來是跟IE瀏覽器磕上了,這個問題發現不少人也遇到過,實在蛋疼。但今天這個不能算是一個bug,因為IE可能是從安全形度上考慮結果導致的。一步步來解讀。 普通上

IntelliJ IDEA中使用.ignore外掛忽略必要提交的檔案

安裝外掛.ignore 在IDEA開發工具中,點選“Settings”工具圖示,找到“Plugins”,在搜尋框中輸入.ignore查詢外掛,找到後點擊“Install”進行安裝,安裝完成後,需要重

Eclipse下使用git時利用.gitignore檔案忽略想提交的檔案

背景:在使用git提交時,由於會有一些檔案不想上傳,如log檔案,maven產生的mvn等,傳了沒有用還影響美觀,所以需要使用.gitignore檔案忽略不想提交的檔案或資料夾。 正文: 1.   .gitignore檔案怎麼建立呢?有的小夥伴發現自己專案的根目錄下是有這

idea 如何優雅的新增.ignore 忽略必要提交的檔案

http://blog.csdn.net/lafengwnagzi/article/details/77980092最近有點時間然後就跑去搜了下idea熱門的外掛,一不小心發現了一個.ignore外掛。有過在idea使用git都知道.gitignore檔案,而這個外掛就是能優

IDEA忽略必要提交的檔案

使用的IDE是IntelliJ IDEA,發現IDEA在提交專案到本地倉庫的時候,會把.idea資料夾中的內容也提交上去,這裡面放的是一些專案的配置資訊,包括歷史記錄,版本控制資訊等。可以不傳到Git上面去。 這個時候就需要編寫.gitignore檔案來忽略提交這些檔案。在I

在IntelliJ IDEA中使用.ignore外掛忽略必要提交的檔案

最近初學Git,而且在使用的IDE是IntelliJ IDEA,發現IDEA在提交專案到本地倉庫的時候,會把.idea資料夾中的內容也提交上去,這裡面放的是一些專案的配置資訊,包括歷史記錄,版本控制資訊等。可以不傳到Git上面去。 這個時候就需要編寫.gitignore檔案來忽略提交這些檔案。在IDEA中有

SELinux限制導致VSFTP匿名使用者檔案問題解決方法

確保其它配置正確,還不能上傳,就是SELinux的限制; 解決步驟: getsebool -a | grep ftp //列出ftp的相關規則布林值開啟狀態 set

django 基於form表單檔案和基於ajax檔案

一、基於form表單上傳檔案 1、html裡是有一個input type="file" 和 ‘submit’的標籤 2、vies.py def fileupload(request): if request.method == 'POST': print(request.P

bootstrap-fileinput檔案後再開啟檔案介面顯示取消按鈕

Bootstrap File Input是一款基於bootstrap框架的html5上傳檔案外掛,具體展示效果如下: 使用時常見配置如下:         $(".multipleFileUpload").fileinput({   &n

Vue.js下載檔案及判斷檔案型別,獲取檔案大小

目錄 下載檔案 方法一  方法二 方法三 1.程式碼 1.程式碼 1.程式碼 下載檔案 所用的瀏覽器:Google Chrome 方法一 功能:點選匯出按鈕,提交請求,下載excel檔案; 1.跟後端

[置頂]關於使用input type=file 標籤檔案的注意細節(檔案 無法獲取檔案 問題)

首先確定服務端使用的是C#。其他語言我沒測試 第一、建立一個form,就像這樣 <form method="post" enctype="multipart/form-data" action=

如何建立.gitignore檔案忽略git必要提交的檔案

1、在需要建立 .gitignore 檔案的資料夾, 右鍵選擇Git Bash 進入命令列,進入專案所在目錄。 2、輸入 touch .gitignore ,生成“.gitignore”檔案。 3、在”.gitignore” 檔案裡輸入你要忽略的資料夾及其檔案就可以了。(注意格式) 我的

處理GitHub允許大於100M檔案問題

轉載地址:http://www.cnblogs.com/qmmq/p/4604862.html 同樣是記錄一下自己工作遇到的問題,免得下次再遇到了還到處網上查資料解決。 自己的專案的版本控制用的是Git,程式碼倉庫在github託管。專案裡用到了百度導航SDK,由於百

GitHub檔案能超過100M的解決辦法

上傳專案到GitHub上,當某個檔案大小超過100M時,就會上傳失敗,因為預設的限制了上傳檔案大小不能超過100M。如果需要上傳超過100M的檔案,就需要我們自己去修改配置。 首先,開啟終端,進入專案所在的資料夾; 輸入命令:git config http.

git 建立.gitignore忽略必要檔案

問題: 建立java專案,使用git提交,有時需要忽略不必要的檔案或資料夾,只保留一些基本。 例如maven建立好後,實際開發中我們只需提交:src,.gitignore,pom.xml等檔案 但是有些則不必要提交,如maven專案的target資料夾等等 解決方法:

GitHub建立倉庫並檔案

1.首先建立github賬號 2.安裝git 3.配置ssh-key: 用git base命令列生成ssh-key,輸入ssh-keygen -t rsa      //一路回車下來,會得到下面的畫面: 4.在github網站上配置ssh-key: