git 不提交本地配置文件修改

# 取消对指定文件修改跟踪
git update-index --assume-unchanged ./application/site.php

# assume-unchanged:关闭本地文件与远程仓库跟踪,不再跟踪指定文件修改,
# 因此一旦使用assume-unchanged,文件将不再从远程仓库pull更新,也不再push推送远程仓库了。

# 恢复对指定文件修改跟踪
git update-index --no-assume-unchanged ./application/site.php

# git update-index --assume-unchanged 支持正则匹配方式使用

# 关闭跟踪extra目录下后缀为.php的文件
git update-index --assume-unchanged "./application/*.php";
# 打开跟踪extra目录下的所有文件
git update-index --assume-unchanged "./application/";

#所有如果即想要远程仓库对应文件的更新,又不想要将自己本地的修改提交,
#可以使用命令:git update-index --skip-worktree
#skip-worktree:不会关闭本地文件对远程仓库的跟踪,只是告诉Git不要跟踪对本地文件的更改,
#pull时会拉取最新的更新,但要更新则需要no-skip-worktree再pull拉取合并最新更新。

# 关闭GIT跟踪本地文件修改
git update-index --skip-worktree "./application/*.php"
# 打开GIT跟踪本地文件修改
git update-index --no-skip-worktree "./application/*.php"


怎么查看已经忽略的文件列表,特别是忽略文件很多的且忽略时间很久的情况下

# 使用命令可以查看忽略的文件列表

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

64803af1f3de3.png

图1

评论