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

时间:2015-07-30 16:35:25

标签: git visual-studio-2012 gitignore

我试图忽略需要在存储库中提供的VisualGDB设置文件,以供人们检出基线。 VisualGDB是一个可视化工作室插件,我希望程序员能够检查基线VS项目,只需更改一些小设置即可快速启动和运行。

问题是我不希望在再次检出更改后跟踪更改。每个程序员都需要将此设置文件作为模板,但他们还需要对各自的环境进行微调,我不希望有大量版本的此文件。

我使用基线模板设置创建了repo,将其推送到裸仓库,将其克隆到新位置,更改了设置并将设置文件添加到gitignore,但它仍然跟踪更改。有什么想法吗?

3 个答案:

答案 0 :(得分:0)

如果你把文件添加到git你就不能忽略它。你可以忽略jast untracked文件。我认为你应该从git中删除该文件而不是忽略它并用该文件创建一个模板文件夹并将其添加到git中模板。

Gitignore

  

NOTES   gitignore文件的目的是确保Git未跟踪的某些文件保持未跟踪。   要停止跟踪当前跟踪的文件,请使用git rm --cached。

答案 1 :(得分:0)

无论

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

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

  3. 我更喜欢1.

    还要考虑在服务器端放置一个钩子来阻止人们推回不需要的文件。我已经使用VS文件完成了此操作,以阻止人们无意中推送不应受版本控制的.v12.suo.sdf文件。其中一些是如此之大,以至于你根本不想要它们(git rm并没有删除它们的每一个痕迹,因为它们仍然保留在旧版本中,从而减慢了克隆速度。) p>

答案 2 :(得分:0)

将文件添加到git index后,git status将继续跟踪该文件的更改,即使它位于.gitignore

听起来您希望git忽略对设置模板的更改,但将其保留在repo中。为此,您可以使用:

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

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

为了告诉git再次开始跟踪更改,您可以使用:

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