有很多这样的问题,但似乎都没有达到所需的解决方案。
如何在不提交给github的情况下忽略对本地文件的更改?示例:app / etc / local.xml
Github - 具有正确的local.xml,不应该被覆盖! 我有一个包含app / etc / local.xml的本地.gitignore文件 但是,当我更改文件时,它仍然显示为已提交修改。
我试过了:
git rm --cached app/etc/local.xml
但这会删除github 中的文件,但是它会让我继续在本地编辑文件,但它不会出现在提交中。
如何将原始文件保存在github上?
这与我的.gitignore中的所有文件和文件夹一致
答案 0 :(得分:2)
你正在寻找错误的方向。
您的问题的常见解决方案是创建两个文件:
obj
- 为其中的所有设置添加合理的默认值,并将其添加到app/etc/local.xml.dist
存储库; Git
- 将您在计算机上实际使用的值放在此文件中,不要将其添加到app/etc/local.xml
存储库中(如果已存在则将其删除)将其路径添加到Git
。在.gitignore
中添加评论,教导您的同事们应该制作文件的副本,将其命名为local.xml.dist
并将其实际配置值放入其中(而不是修改local.xml
为此目的)。
编写代码以阅读local.xml.dist
然后,如果存在local.xml.dist
,则加载它并覆盖从local.xml
加载的值。这种方式local.xml.dist
只能包含真正需要设置的值;如果local.xml
已提供可在本地计算机上使用的默认值,则可能会错过local.xml.dist
。
这就是现在很多软件包的工作方式。
答案 1 :(得分:1)
有很多这样的问题,因为人们自然会尝试这样做(即,根据存储库中的环境具有配置文件)并且它永远不会起作用。除了将配置从存储库中取出或每个环境有一个文件(不同的文件/目录名称)和指向它的外部符号链接(或其他机制)之外,没有好的解决方案。您发现的问题可能有详细说明。
您可能认为您需要git
忽略它的解决方案,但从长远来看这确实没有用(即git reset --hard
仍会破坏您的本地更改,或git merge
如果上游文件发生变化,将会失败,从而导致手动开销。