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

Gab*_*ker 34 git github gitignore

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

jwe*_*ich 72

用这个:

git update-index --skip-worktree path/file.cfg
Run Code Online (Sandbox Code Playgroud)

并恢复:

git update-index --no-skip-worktree path/file.cfg
Run Code Online (Sandbox Code Playgroud)

最后,如果要列出标有skip-worktree以下内容的文件:

git ls-files -v | grep ^S | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)

为简化起见,您可以在以下内容中为其创建别名$HOME/.gitconfig:

[alias]
    ls-ignored-changes = !git ls-files -v | grep ^S | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)

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

  • @Gabriel Baker:那是因为你已经上传了这个文件.使用`git reset path/file.cfg`取消它. (2认同)