小编典典

如何让 git 忽略对文件的未来修订?

all

我创建了一个包含在 git 存储库中的文件的默认版本。重要的是,当有人克隆存储库时,他们会获得此文件的副本。但是,我想设置 git
以便稍后忽略对此文件的更改。 .gitignore仅适用于未跟踪的文件。

我的动机是该文件包含特定于机器的信息。我想提供默认值,同时允许人们进行不会被推回原始存储库的本地更改,当我们拉新更改时会产生合并冲突。

我们通常很懒惰并且经常使用git add .,所以我很确定如果我不能告诉 git 忽略这个文件,对它的更改最终会被提交和推送。

总结一下,

  1. 我想创建一个文件,将其称为default_values.txt添加到我的 git 存储库并在有人克隆该存储库时包含在内。
  2. git add .不应添加default_values.txt到提交中。
  3. 此行为应传递给存储库的任何克隆。

阅读 88

收藏
2022-07-14

共1个答案

小编典典

正如许多其他人所提到的,一个好的现代解决方案是:

git update-index --skip-worktree default_values.txt

这将忽略对该文件的本地和上游更改,直到您决定再次允许它们:

git update-index --no-skip-worktree default_values.txt

您可以获得标记为已跳过的文件列表:

git ls-files -v . | grep ^S

请注意,与 不同--skip-worktree的是,一旦拉取上游更改,--assume-unchanged状态就会丢失。

2022-07-14