【问题标题】:gitignore file does not ignores and git rm actually removes the filesgitignore 文件不会忽略并且 git rm 实际上会删除文件
【发布时间】:2013-02-15 08:03:03
【问题描述】:

所以我找到了一个解决方案,其中 .gitignore 应该忽略我告诉它的文件。但事实证明,如果你已经提交了它们, .gitignore 文件并不重要。建议的解决方案是 git rm 文件名。

我的问题是,
我想贡献一个 repo,它已经提交了所有初始文件。因此,我在 .gitignore 中添加了一些我想要 gitignore 的文件名,并提交它推送它并合并拉取请求。
现在我正在对其中一个 gitignore 文件进行更改,当我执行 git status 时,它显示修改(预期)。所以我做了一个 git rm index.php 并且文件被删除了。这不应该是解决方案,对吧?那么我应该删除它并提交它并推拉它吗?到时候就没有了。
我确定我做错了什么。
欢迎任何帮助。

附言我读了这个Git Ready Link,但每次都假设不变,这是不可行的。

我的 gitignore 文件看起来像这样:

/index.php
/assets/*
/protected/config/*
/protected/runtime/*
*~
[#]*[#]

【问题讨论】:

  • 你签入你的 .gitignore 文件了吗?
  • 你想达到什么目的?为什么要忽略已经提交的文件?也许git update-index --assume-unchanged <file> 是你所追求的?
  • 因为每台机器的配置文件都不同。如果你熟悉 yii 框架,你就会知道为什么要忽略运行时和资产。只是没用。

标签: git github yii


【解决方案1】:

我认为你需要

$ git update-index --assume-unchanged config_file

而不是修改.gitignore文件来忽略它们。

通过这种方式,您可以将文件保留在那里,但所做的任何更改都将被忽略。当你需要修改它时,使用

$ git update-index --no-assume-unchanged config_file

重新跟踪文件。然后您可以在config_file 上提交修改。

我认为这是管理配置相关文件的更好方法。 .gitignore 更适合临时文件。 :)

【讨论】:

  • 所以在我不希望它跟踪更改之前它会一直存在吗?我的意思是我会每次都保持强硬的代码而不显式地编写它。我只需要做一次对吗?
  • 而且,你提到的那一行已经在 git ready 链接中被建议了,这看起来很糟糕,因为我有需要忽略的文件夹。
  • @dibs_ab 最好一个一个修改,否则你修改一个,其他的也会提交
  • @dibs_ab 即,您可以对/protected/config/ 下的所有文件使用我所说的命令(例如/protected/config/config_file_one,...),并将/assets/*/protected/runtime/* 保留在.gitignore 中如你所说,原因文件是在运行时生成的。
  • dint 得到你 Kjuly。这些文件是配置文件。每次我提交,它都会改变。我需要一个永久的解决方案。
猜你喜欢
  • 2018-05-02
  • 1970-01-01
  • 2021-09-29
  • 2011-03-18
  • 2013-07-23
  • 2021-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多