git 忽略文件的四種方式


Git 提供了四種方法來忽略文件,分別適用不同情況,如下:

1、全局忽略

忽略規則由本機所有倉庫共用,配置方法如下:
編輯 ~/.gitconfig 文件,

[user]
    name = yourname
    email = yourname@email.com
[gui]
    encoding = utf-8
[core]
   excludesfile = ~/.gitignore

最后兩行是新增的,用戶設置全局忽略的配置文件目錄,本例子是存放於 ~/.gitignore 下,可以改成其他路徑。
或通過命令行添加配置:

git config --global core.excludefile ~/.gitignore

2、單個倉庫下忽略(遠程共用)

單個倉庫下忽略,同時同步該設置至遠程倉庫,與其他克隆倉庫共用;這個方法也是最常用的,配置方法是在倉庫的根目錄下新建 .gitignore 文件,在文件里配置忽略規則,同時把 .gitignore 文件加入版本管理。

比如:

# phpstorm project files
.idea
.tags
.tags_sorted_by_file

3、單個倉庫下忽略(本機使用)

單個倉庫下忽略,不會同步該設置至遠程倉庫,只在本機起作用;配置方法是直接編輯倉庫根目錄下的.git/info/exclude文件,把要忽略的規則直接寫入,這個方法只在本機當前倉庫起效,不會對其他的克隆倉庫起效。

配置文件規則參考 中文文檔

比如:

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~


read.md

4、忽略已跟蹤文件的改動(本機使用)

上訴1,2,3方案都是適用於未跟蹤的文件改動,而對於已跟蹤文件的改動並不適用,好在針對這種情況 Git 也提供了我們方法去忽略。

#忽略跟蹤(提交代碼時,忽略某一個文件不提交,即某個文件不被版本控制)
git update-index --assume-unchanged FLIE   #FILE是目標文件路徑       
#恢復跟蹤
git update-index --no-assume-unchanged FLIE   #FILE是目標文件路徑  

不過如果執行 git checkoutgit reset的時候仍然會影響到這些文件,並把內容恢復到被跟蹤的內容(再次修改仍然不會被跟蹤)。

如果忽略的文件多了,可以使用以下命令查看忽略列表

git uls-files -v | grep '^h\ '

提取文件路徑,方法如下

git ls-files -v | grep '^h\ ' | awk '{print $2}'

所有被忽略的文件,取消忽略的方法,如下

git ls-files -v | grep '^h' | awk '{print $2}' |xargs git update-index --no-assume-unchanged  

更多update-index 參考:https://www.cnblogs.com/wt645631686/p/10007328.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM