Git和Rails:忽略database.yml

时间:2010-05-18 12:00:15

标签: git macos gitosis

我终于通过放弃SVN for Git并喜欢它而迈出了一大步。它必须在某个地方,但我无法真正找到如何做到这一点,gitosis友好。

我将我的回购'网站'存储在远程计算机上。我推送我的工作副本并在生产机器上提取这些数据。然而,一个市长的区别是'one'文件:database.yml,它在生产机器上永远不会改变。

当从repo中提取数据时,是否有可能(如果是这样,如何)只能“忽略”此文件?我现在正在手动执行此操作,但是一些优雅会非常受欢迎。

感谢。

5 个答案:

答案 0 :(得分:8)

是的,这是可能的。

git update-index --skip-worktree FILENAME

git update-index --assume-unchanged FILENAME

对于您的情况,FILENAME为config/database.yml

如果您使用第二个命令(假设未更改),则文件将在git reset命令后恢复。

答案 1 :(得分:6)

如果在您在git repo中添加“database.yml”之前在ignore文件中指定了它,我认为您必须将其删除:

git rm config/database.yml
git commit -a -m "Removed database.yml"

然后,在您的项目中添加database.yml文件,将正常工作。

答案 2 :(得分:5)

我的建议:甚至不要把它放入git中。制作一个database.yml.skel或类似的东西,以便用户可以为自己的database.yml建模,并将其作为样本。但是,在我看来,conf文件不属于版本控制 - 完全出于你提到的原因。

忽略非常简单:实际上,有几种方法可以做到这一点。这个的正确是.gitignore文件;另一个是.git/info/excludes。有关详细信息,请参阅this answer

所以,脱离我的头脑:

echo database.yml >> config/.gitignore
git add config/.gitignore
git commit

答案 3 :(得分:0)

如果应用程序旨在由其他用户下载和安装,则删除database.yml不是一个好主意。如果您有不熟练的用户安装您的应用程序,删除该文件是一种鸡巴移动。在这种情况下,告诉git在添加默认值后忽略该文件是正确的方法。

答案 4 :(得分:0)

如果要删除系统缓存或从本地计算机中删除,只需运行以下命令即可。

git rm --cached config/database.yml 

如果要从git中删除,请运行以下命令

git rm config/database.yml
git commit -a -m "Removed database.yml"
git push branch_name