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>
上一篇下一篇

猜你喜欢

热点阅读