如何告诉git忽略对单个文件的所有进一步编辑而不从repo中删除它

时间:2010-11-06 17:15:44

标签: git github gitignore

我已经在github上分叉了一个项目,并开始在我自己的机器上搞乱它,我想提交我在github上回到我的fork的更改,但没有提交我对.cfg文件所做的更改,因为它包含数据库密码等等

1 个答案:

答案 0 :(得分:72)

使用此:

git update-index --skip-worktree path/file.cfg

要恢复:

git update-index --no-skip-worktree path/file.cfg

最后,如果您要列出标有skip-worktree的文件:

git ls-files -v | grep ^S | awk '{print $2}'

为简化起见,您可以在$HOME/.gitconfig

中为其创建别名
[alias]
    ls-ignored-changes = !git ls-files -v | grep ^S | awk '{print $2}'

然后你可以只输入git ls-ignored-changes。如果你有git-completion(对于bash,tcsh,zsh),它甚至可以用于自动完成。