如何让git忽略特定文件的本地更改,而不修改.gitignore文件?

3
我的具体情况是:我正在与一个团队共同使用git repo。我们使用vagrant机器,因此在git repo中有一个Vagrantfile。我想修改我的vagrant machine的配置文件,以使用特定数量的内存和CPU核心,但不想强制这个repo的所有其他用户进行这些修改。我们确实希望在repo中有这个Vagrantfile,所以我不能将其添加到.gitignore。我不想每次提交更改时都要撤销和重新执行我的编辑。

这听起来像是你试图使用版本控制来解决配置问题。为什么不让你的vagrant文件包含一些自定义的本地配置文件(如果存在的话)呢? - Edward Thomson
3个回答

4

您可以尝试使用 git update-index --assume-unchanged <file> 命令。

这将假定该文件没有更改,因此不会将其推送。

如果要再次跟踪该文件,请使用 git update-index --no-assume-unchanged <file> 命令。


“assume-unchanged” 不是用来忽略文件的,它是向 Git 承诺你 不会 更改该文件。违反此承诺将导致未定义的行为。 - Edward Thomson

1
你可以将它添加到你自己的$HOME/.gitignore文件中,但不幸的是我认为这不会影响已经被git版本控制的文件。
我通常会使用<some_file>_example并忽略<some_file>,这可能是你的选择。

0

这是一个架构问题,Git本身很难解决。在我的团队中,我们通过让每个开发人员在共享计算机上维护自己克隆的Git存储库副本来解决类似的问题,其中...

C:\GitRepos\<developer>\

...每个开发者在共享资产上的Git工作目录,以及...

C:\GitRepos\<developer>\<repo>

...这里是每个开发者的存储库文件夹所在的位置。通过这种方式,任何需要针对开发者特定需求的内容,但不包含在存储库中的内容,都可以保存在C:\GitRepos\<developer>\。希望这能有所帮助。:)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接