Git 有某种"忽略一次"功能吗?
我希望 git 这次只忽略对文件的更改,可能吗?
我有一个带有变量的跟踪文件,我想更改:
Debug: 'true'
太"假",
- 我不希望在暂存文件时显示文件,所以我可以执行"全部暂存"。
- 我也不想将文件添加到 .gitignore 中,因为该文件包含其他更改且应跟踪的变量。
- 我不想推动调试:"false",因为这只会让其他人遇到相反的问题,想要在没有跟踪的情况下进行调试:"true"。
这可能吗?
我知道:
git update-index --assume-unchanged <file>
但是,如果我理解正确,它将继续不跟踪更改,直到我使用 --no-as假设-unchanged 标志开始跟踪。
我可以先使用 --假设-不变然后进行更改,然后使用 --no-假设-不变来绕过跟踪吗?
不,你不能这样做 - 一旦你--no-assume-unchanged
,Git 就会检测到你的更改并尝试提交它,除非你有意识地避免它,从不使用commit --auto
,并且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>
每次你改变一些东西,但是...如果有人忘记了怎么办?
解决此问题的典型方法是拥有一个未提交的配置文件(添加到.gitignore
(,并附有配置文件的已提交示例(通常命名为*.sample
、*.example
、*.skeleton
或类似(。这样,更改永远不会传播到您的协作者。当您更改配置文件的结构时,请确保也更改示例,以便其他人可以效仿。每个协作者都需要复制示例以创建真正的配置文件,然后他们可以针对其环境自定义该文件。