Git忽略文件更改,但只有一次?
Git忽略文件更改,但只有一次?
Git有一种“忽略一次”功能吗?
我希望git只在这次忽略对文件的更改,这可能吗?
我有一个带有变量的已追踪文件,我想要更改:
Debug: 'true'
为'false',
- 我不希望文件在暂存文件时显示出来,这样我就可以执行“全部暂存”。
- 我也不想将文件添加到.gitignore中,因为文件包含其他可变的变量应该被追踪。
- 我不想推送Debug: 'false',因为这样其他人就会出现想要追踪Debug: 'true'的相反问题。
这可能吗?
我知道:
git update-index --assume-unchanged
但如果我理解正确,它将继续不追踪更改,直到我使用--no-assume-unchanged标志开始追踪。
我可以先使用--assume-unchanged,然后进行更改,然后使用--no-assume-unchanged来绕过追踪吗?
问题的原因是,当你使用--no-assume-unchanged
命令后,Git会检测到你的更改并尝试提交,除非你有意避免使用commit --auto
和add --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>
但是,如果有人忘记了怎么办呢?