git文件忽略

【.gitignore】:這個忽略文件會上傳到遠程倉庫,會使所有人都按照這個文件規則忽略文件

【.git/info/exclude】:這個會關閉文件與遠程倉庫的跟蹤,認爲這個文件遠程倉庫是不會修改,所以每次pull都是本地的文件

【assume-unchanged】:這個會關閉文件與遠程倉庫的跟蹤,認爲這個文件遠程倉庫是不會修改,所以每次pull都是本地的文件

【skip-worktree】:這個不會關閉文件與遠程倉庫的跟蹤,只是告訴Git不要跟蹤對本地文件/文件夾的更改,每次pull時會拉取最新的變化會提示衝突,但因爲沒有跟蹤本地更改,所以需要no-skip-worktree再合併最新的變化

以上在commit時都會忽略文件

附:

【skip-worktree】常用命令:

【skip-worktree】標記一個文件

git update-index --skip-worktree project-1.yml

git update-index --skip-worktree project-2.yml

獲取被【skpi-worktree】標記的文件

git ls-files -v | grep -i "^S"

取消單個文件【skip-worktree】標記

git update-index --no-skip-worktree project-1.yml

git update-index --no-skip-worktree project-2.yml

批量取消文件【skip-worktree】標記

git ls-files -v | grep -i "^S" | cut -c 3- | tr '\012' '\000' | xargs -0 git
update-index --no-skip-worktree

批量取消代碼解析

git ls-files -v

顯示所有文件的狀態

grep -i ^S cut -c 3-

提取從第三個字符開始到結尾,去掉狀態只保留路徑

tr ‘\012’ ‘\000’

替換換行符 (\012) 爲 (\000)

xargs -0 git update-index --no-skip-worktree

把以0分割的路徑字符傳給 git update-index --no-skip-worktree 取消

【assume-unchanged】常用命令

【assume-unchanged】標記一個文件

git update-index --assume-unchanged project-1.yml
git update-index --assume-unchanged project-2.yml

獲取被【assume-unchanged】標記的文件

git ls-files -v | grep -I "^h"

取消單個文件【assume-unchanged】標記

git update-index --no-assume-unchanged project-1.yml

git update-index --no-assume-unchanged project-2.yml

批量取消文件【assume-unchanged】標記

git ls-files -v | grep -I "^h" | cut -c 3- | tr '\012' '\000' | xargs -0 git
update-index --no-assume-unchanged
發佈了29 篇原創文章 · 獲贊 4 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章