git忽略已提交文件的修改

780 阅读1分钟

我们在使用git中,经常会遇到这样的情况:

git仓库中有某个必要的配置文件,这个文件应该存在,但是在每个开发人员的本地都要对他进行修改。这就导致这个文件要被反复修改,容易冲突。要想不冲突,就要每个人提交前,都刻意不提交该文件,很是麻烦。(比如TinkPHP下的app.php的debug模式,开发中要使用true,但是生产环境要使用false)

一般我们这时候就会想到,用.gitignore来忽略这个文件,但是该文件是已经提交过的,并且对于工程是必要的,应该保存在git中的。.gitignore对于这种已提交过的文件是无能为力的。 ————————————————————————————————————————————————

这时候,就需要使用git update-index --skip-worktree命令了。

该命令的作用是,让git在搜索文件列表时,忽略某个文件,这样该文件即使有修改,git也不会关心。

#例子:
git update-index --skip-worktree config/app.php

使用这个命令,时间久了,可能会忘记自己忽略过哪些文件,这时候可以使用git ls-files -v . | grep "^S"命令找出来忽略过的文件

#例子:
git ls-files -v . | grep "^S"
 
#输出:S config/app.php

不想继续忽略该文件时,使用git update-index --no-skip-worktree命令,来让git不再忽略该文件。

#例子:
git update-index --no-skip-worktree config/app.php