一 菠齿、assume-unchanged
已經(jīng)納入的版本控制的文件添加本地忽略
git update-index --assume-unchanged 文件名
取消本地忽略
git update-index --no-assume-unchanged 文件名
查看所有被忽略的文件
git ls-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
注意:
assume-unchanged
的文件苍凛,如果出現(xiàn)修改沖突,會(huì)以最新提交覆蓋本地變更
二 粮彤、.gitignore
通過配置.gitignore
文件實(shí)現(xiàn)根穷。
gitignore規(guī)則只能對(duì)Untracked Files生效
對(duì)于已經(jīng)納入版本控制的文件如果不再需要〖菡可以先把它從版本控制中移除缠诅,然后在添加到.gitignore
git rm --cached file
當(dāng)我們需要?jiǎng)h除暫存區(qū)或分支上的文件, 但本地又需要使用, 只是不希望這個(gè)文件被版本控制, 可以使用 git rm --cached
, git rm --cached
會(huì)從index
里面刪除該文件乍迄,下次commit
的時(shí)候會(huì)修改git倉(cāng)庫(kù)管引,但是本地的文件還是保留,此時(shí)再去修改.gitignore
文件就實(shí)現(xiàn)了文件忽略闯两。
三 褥伴、exclude
git 還提供了另一種exclude
的方式來做同樣的事情,不同的是.gitignore
這個(gè)文件本身會(huì)提交到版本庫(kù)中去漾狼,而 .git/info/exclude
這里設(shè)置的則是本地需要排除的文件,不會(huì)影響到其他人,也不會(huì)提交到版本庫(kù)中去重慢。
特別適合于解決本地新增了文件,且本地需要保留新增文件且不想修改.gitignore
也不想提交新增文件的情況逊躁,比如spring boot項(xiàng)目本地新增application-local.yml用來覆蓋dev配置.