git如何让文件只提交一次,之后对文件改动都不进行提交,且所有分
2022-03-07 本文已影响0人
中v中
有一个配置文件
git上保存一份可发布状态的
但是本地测试需要对配置文件进行改动
这些改动并不想提交到git
之前做法
1
git update-index --assume-unchanged
让本地不对文件进行追踪
但是这个做法对其他分支并没有效果
有什么命令可以达到我想要的效果?
git-extras 提供了一个命令 git lock,可以实现这个功能,提交文件以后用 git lock 命令把配置文件锁住。
当然这个 git lock 命令的实现很简单,包装了 git 自带的功能:
git update-index --skip-worktree 文件路径
有同样的效果。
.gitignore文件不知道能不能满足,提交一次之后把配置文件填加入.gitignore文件中,之后就不会提交了
仅与文件一起使用,不与目录一起使用。 我认为,更快的方法之一:
cd dir
ls | xargs -l git update-index --assume-unchanged
恢复跟踪
git update-index --no-assume-unchanged sp_edaijia/protected/controllers/ApiController.php //恢复跟踪
如果忽略的文件多了,可以使用以下命令查看忽略列表
git uls-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>
这样的话,这个文件的改动就不会在git status的时候显示。
git update-index --no-skip-worktree <file>