Git会忽略文件更改,但只会更改一次?

时间:2018-09-11 12:12:27

标签: git git-track

Git是否具有某种“一次性忽略”功能?

我只希望git这次仅忽略对文件的更改,有可能吗?

我有一个包含变量的跟踪文件,我想更改:

Debug: 'true'

太“假”,

  • 我不希望在暂存文件时显示文件,所以我可以“全部暂存”。
  • 我也不想将文件添加到.gitignore,因为该文件包含其他更改且应跟踪的变量。
  • 我不想推送Debug:“ false”,因为那样只会使其他人遇到想要在没有跟踪的情况下使用Debug:“ true”的问题。

这可能吗?

我知道:

git update-index --assume-unchanged <file>

但是,如果我理解正确,它将继续不跟踪更改,直到我使用--no-assume-unchanged标志开始跟踪为止。

我可以先使用--assume-unchanged然后进行更改,然后再使用--no-assume-unchanged绕过跟踪吗?

1 个答案:

答案 0 :(得分:3)

不,您无法执行此操作---no-assume-unchanged之后,Git将检测到您的更改并尝试提交更改,除非您有意识地避免更改,请不要使用commit --auto和{{1 }},只要您要更改配置文件中的内容即可。换句话说,您只能自动忽略文件,不能忽略文件中的特定更改。

可以执行以下顺序:

add --patch

每次您更改某些内容,但是...如果有人忘记了怎么办?

解决此问题的典型方法是拥有一个未提交的配置文件(添加到git update-index --no-assume-unchanged <file> git add --patch <file> # pick and choose what you want for yourself only git commit git update-index --assume-unchanged <file> 中),并附带一个已提交的 example 配置文件(通常命名为.gitignore*.sample*.example或类似名称)。这样,更改永远不会传播到您的协作者。当您更改配置文件的结构时,请确保也更改示例,以便其他人也可以照做。希望每个合作者都复制该示例以创建实际的配置文件,然后他们可以针对自己的环境对其进行自定义。