存在于裸存储库中的Gitignore文件



我试图忽略VisualGDB设置文件,该文件需要在存储库中可用,以便人们作为基线检出。VisualGDB是一个visual studio插件,我希望程序员能够检出一个基线VS项目,并能够通过更改一些小设置来快速启动和运行。

问题是我不希望在再次签出后跟踪更改。每个程序员都需要这个设置文件作为模板,但他们也需要为各自的环境做一些微调,我不希望这个文件有很多版本。

我用基线模板设置创建了repo,将其推到裸repo,将其克隆到一个新位置,更改设置并将设置文件添加到gitignore,但它仍然跟踪更改。什么好主意吗?

如果你添加一个文件到git,你不能忽略它。您可以忽略未跟踪的文件。我认为你应该把这个文件从git中删除,而不是忽略它,然后用这个文件创建一个模板文件夹,并把它作为模板添加到git中。

Gitignore

笔记gitignore文件的目的是确保某些未被Git跟踪的文件保持不被跟踪。要停止跟踪当前正在跟踪的文件,使用git rm——cached.

或者

  1. 分发settings.xyz.example文件(然后通过删除.example将其复制到新文件,其中settings.xyz.gitignore中;或者

  2. 指示开发人员在克隆后从索引(git rm --cached filename)中删除设置。

我更喜欢1。

还可以考虑在服务器端添加一个钩子来阻止人们将不需要的文件发回。我已经用VS文件这样做了,以阻止人们无意中推动.v12.suo.sdf文件,这些文件不应该在版本控制之下。其中一些是如此之大,以至于你根本不希望它们出现在repo中(git rm不会删除它们的所有踪迹,因为它们保留在旧版本中,从而减慢了克隆速度)。

一旦文件被添加到git索引中,git状态将继续跟踪该文件的更改,即使它位于。gitignore

听起来你想让git忽略对设置模板的更改,但将其保留在repo中。要做到这一点,可以使用:

git update-index --assume-unchanged settings.xyz

这将使文件保留在存储库中,但将忽略您所做的任何本地更改。

要告诉git重新开始跟踪更改,你可以使用:

git update-index --no-assume-unchanged settings.xyz

最新更新