Git忽略不想提交的文件

分幾種情況

(1)不想提交的文件是倉庫中也不需要的(也就是可以刪除的,但每次會自動生成)

使用.gitignore,將需要忽略的文件加入這個文件

例如:

*.o
*.o.*
*.a
*.s
*.ko
*.so
*.so.dbg
*.mod.c
/vmlinuz
/System.map
/Module.markers
/tar-install/
!.gitignore
!.mailmap

#
# Generated include files
#
include/config
include/generated
arch/*/include/generated

# stgit generated dirs
patches-*

將這個.gitignore文件提交至遠程倉庫,以後所有取這個工程的都會忽略指定的文件

但是這要求需要忽略的文件是未追蹤狀態,也就是說沒有被git add 過;如果已經add 過可以使用以下命令取消追蹤

git rm --cached file/path

git add .

git push

git rm --cached   會刪除文件的追蹤狀態,不會刪除本地文件,git push後是會刪除遠程倉庫內的文件的

 

(2)需要忽略的文件是倉庫內必須的,但需要忽略本地改動(也就是說遠程倉庫中不能刪除)

git update-index --assume-unchanged  file/path

這個命令可以忽略已經是追蹤狀態的文件,但是無法將這個忽略狀態提交至遠程倉庫,只對當前本地工程有效

取消忽略:

git update-index --no-assume-unchanged file/path

查看忽略了哪些文件

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

另外一組命令:

git update-index --skip-worktree file/path

git update-index --no-skip-worktree file/path

查看被skip-worktree 的文件列表

git ls-files -v | grep ^S

(3)需要忽略遠程倉庫內需要保留的文件,並將忽略屬性上傳至遠程倉庫

還未找到解決方案

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章