赞
踩
分几种情况
(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)需要忽略远程仓库内需要保留的文件,并将忽略属性上传至远程仓库
还未找到解决方案
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。