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

9 浏览
0 Comments

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

Git有一种“忽略一次”功能吗?

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

我有一个带有变量的已追踪文件,我想要更改:

Debug: 'true'

为'false',

  • 我不希望文件在暂存文件时显示出来,这样我就可以执行“全部暂存”。
  • 我也不想将文件添加到.gitignore中,因为文件包含其他可变的变量应该被追踪。
  • 我不想推送Debug: 'false',因为这样其他人就会出现想要追踪Debug: 'true'的相反问题。

这可能吗?

我知道:

git update-index --assume-unchanged 

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

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

0
0 Comments

问题的原因是,当你使用--no-assume-unchanged命令后,Git会检测到你的更改并尝试提交,除非你有意避免使用commit --autoadd --patch,以及config文件中的更改。换句话说,你只能自动忽略一个文件,而不能忽略文件中的特定更改。

解决这个问题的典型方法是在.gitignore中添加一个未提交的配置文件,并同时提交一个已提交的配置文件示例(通常命名为*.sample*.example*.skeleton或类似的)。这样,更改就不会传播给你的协作者。当你在配置文件的结构上做出更改时,确保同时更改示例,以便其他人也可以跟进。每个协作者都应该将示例复制为真实的配置文件,然后根据自己的环境进行自定义。

解决方法是每次更改时执行以下步骤:

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>

但是,如果有人忘记了怎么办呢?

0