两种方式assume-unchanged和skip-worktree
- 添加本地忽略
git update-index --assume-unchanged 【文件路径】 git update-index --skip-worktree 【文件路径】
- 移除本地忽略(恢复跟踪)
git update-index --no-assume-unchanged vue.config.js git update-index --no-skip-worktree vue.config.js
- 查看所有文件列表
小写h开头是assume-unchanged,大写S是skip-worktree。
git ls-files -v
文件标识 | 描述 |
---|---|
H | 缓存,正常跟踪文件 |
S | skip-worktree文件 |
h | assume-unchanged文件 |
M | unmerged, 未合并 |
R | removed/deleted |
C | modified/changed修改 |
K | to be killed |
? | other,忽略文件 |
cmd查询本地忽略
git ls-files -v |find /V “H ”
linux查询方法
git ls-files -v | grep ‘^h\ ’
这两个参数区别:
- assume-unchanged 假定不变
这个会关闭文件与远程仓库的跟踪,认为这个文件远程仓库是不会修改,所以每次pull都是本地的文件 - skip-worktree 跳过工作树
这个不会关闭文件与远程仓库的跟踪,只是告诉Git不要跟踪对本地文件/文件夹的更改
pull拉取最新的变化,会提示冲突,但因为没有跟踪本地更改,所以需要no-skip-worktree再合并最新的变化
最合适的是skip-worktree,因为它还在跟踪远程库的修改。只是合并修改比较麻烦
另:.git/info/exclude:这个会删除远程仓库忽略文件,保留本地文件