1. 【學了就忘】Git操作 — 55.忽略文件的三種方式
有鑒於此,我們應該尋求一種機制來規避這種事故的發生,在 git 版本控制系統中一般有三種不同的解決方案。
最常用也是最簡單的當屬 .gitignore 文件。
該方式是在工作中最常用的方式,配置方法是在倉庫的根目錄下新建 .gitignore 文件,在文件里配置忽略規則,同時把 .gitignore 文件加入版本管理。之後可以同步該配置到遠程倉庫,其他開發者可更新該文件到本地倉庫,與其他克隆倉庫共享同一套忽略規則。
.gitignore 文件對其所在的目錄,及所在目錄的全部子目錄均有效。
1)查看當前Git工作目錄中文件狀態
可以看到有6個未被追蹤的文件。
2)在Git倉庫的根目錄下新建一個名為 .gitignore 的文件
因為是點開頭,沒有文件名,沒辦法直接在windows系統中直接創建,要通過Git Bash客戶端,用Linux系統的方式新建 .gitignore 文件。
3)將需要忽略的文件寫入 .gitignore 文件中
提示:每個文件或者正則匹配佔一行。
4)將 .gitignore 文件提交到本地版本庫
這樣就完成可忽略文件的整個過程了。
用這種方式配置忽略文件,不會同步該設置至遠程倉庫,只在本機起作用。
配置方法是直接編輯Git倉庫根目錄下的 .git/info/exclude 文件,把要忽略的規則直接寫入,這個方法只在本機當前倉庫起效,不會對其他的克隆倉庫起效。
1)查看當前Git工作目錄中文件狀態
可以看到有3個未被追蹤的文件。
2)編輯Git倉庫根目錄下的 .git/info/exclude 文件,配置忽略
3)再次查看當前Git工作目錄中文件狀態
我們可以看到 local.txt 文件被忽略了。
忽略規則由本機所有倉庫共用(也就是對本機的所有Git倉庫都起作用),配置方法如下:
Linux中,這時把全局要忽略的文件列表 .gitignore 放當前用戶根目錄下( ~/.gitconfig ):
Windows中,這時把全局要忽略的文件列表 .gitignore 放當前用戶根目錄下:
我們以Windows系統為例:
1)查看當前Git工作目錄中文件狀態
2)創建 .gitignore 忽略文件
我們可以復制用戶根目錄下的 .gitconfig 文件,並改名為 .gitignore 文件。
注意:
如下:
3)將忽略文件配置到Git全局配置文件 .gitconfig 文件中
通過如下命令進行配置。
執行命令後,查看 .gitconfig 文件內容,如下:
至此之後,所有Git倉庫都會自動應用這個 gitignore_global.txt 文件中,所配置忽略的文件。
4)把需要忽略的文件加入到 gitignore_global.txt 文件中
把 gitignore_global.txt 文件中的內容清空,之後添加要忽略的文件。
gitignore_global.txt 文件內容如下:
5)查看 learngit 倉庫工作目錄文件狀態
可以看到 hello.java 和 test.java 兩個未被追蹤的文件被忽略掉了。
2. 怎樣讓Git忽略當前已經更改的文件
在你的git目錄下創建一個.gitignore文件,打開之後把要忽略的文件或者文件夾添加進去。比如我要忽略bin目錄,就加一行/bin,如果要忽略一個圖像文件,就加一行/xxx.jgp
3. 如何給android studio配置git忽略文件
svn,git,github這些設置忽略時都是一樣的。 Settings --> Version Control --> Ignored Files --> 點擊右上角的加號,選擇你要忽略的文件就行了。 可以添加三種類型: 指定的文件,文件夾,還有匹配。
4. git配置忽略文件(已提交文件和目錄的忽略)
git 配置語法:
斜杠 / 開頭表示目錄;
星號 * 通配多個字元;
問號 ? 通配單個字元
方括弧 [] 包含單個字元的匹配列表;
嘆號 ! 表示不忽略(跟蹤)匹配到的文件或目錄;
此外,git 對於 . gitignore 配置文件是按行從上到下進行規則匹配的,意味著如果前面的規則匹配的范圍更大,則後面的規則將不會生效;
我們在使用git對項目進行版本管理的時候,總有一些不需要提交到版本庫里的文件和文件夾,這個時候我們就需要讓git自動忽略掉一下文件。
舉例說明:
註:一定要設置好規則順序,*python__/ 和!testpython__/test.txt 設置這兩規則時,*python__/ 規則要在!testpython__/test.txt規則之前,這樣才能使testpython__/test.txt些文件不被忽略
但是往往對於已經提交的文件,在 .gitignore 文件中添加其目錄是不會讓提交列表中的目錄消失的,假如之前沒將 test 目錄添加到 .gitignore 文件中,提交代碼的時候又把 test 目錄提交上去了,那後面在 .gitignore 文件中添加 test 目錄是不會讓提交列表中的 test目錄消失的,這個時候我們就需要使用命令刪除暫存區中的 test 目錄
開發過程中可能還會遇到這樣的情況,某個文件沒有修改好,但是又要提交代碼, 想這次忽略這個文件,下一次提交時再去提交它。
5. 使用Git時,怎麼忽略不想上傳的文件
在進行協作開發代碼管理的過程中,常常會遇到某些臨時文件、配置文件、或者生成文件等,這些文件由於不同的開發端會不一樣,如果使用git add . 將所有文件納入git庫中,那麼會出現頻繁的改動和push,這樣會引起開發上的不便。
Git可以很方便的幫助我們解決這個問題,那就是建立項目文件過濾規則。
git中提供兩種過濾機制,一種是全局過濾機制,即對所有的git都適用;另一種是針對某個項目使用的過濾規則。個人傾向於第二種。
以我的一個項目為例,該項目用.net開發,.config文件、包括生成的bin/Debug, bin/Release文件等,我希望不加入git管理。
在代碼目錄下建立.gitignore文件:vim .gitignore ,內容如下:
[plain] view plain
#過濾資料庫文件、sln解決方案文件、配置文件
*.mdb
*.ldb
*.sln
*.config
#過濾文件夾Debug,Release,obj
Debug/
Release/
obj/
然後調用git add. ,執行 git commit即可。