8

我终于迈出了一大步,放弃了 SVN for Git 并爱上了它。它必须在某个地方,但我真的找不到如何做到这一点,gitosis友好。

我将我的仓库“站点”存储在远程机器上。我推送我的工作副本并将这些数据拉到生产机器上。一个主要的区别是“一个”文件:database.yml,它永远不会在生产机器上改变。

当从存储库中提取数据时,是否有可能(如果是的话,如何)只“忽略”这个文件?此时我正在手动执行此操作,但我将非常感谢一些优雅。

谢谢。

4

5 回答 5

8

对的,这是可能的。

git update-index --skip-worktree FILENAME

或者

git update-index --assume-unchanged FILENAME

FILENAMEconfig/database.yml适合您的情况。

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

于 2012-02-01T07:45:31.407 回答
6

如果在您在忽略文件中指定之前将“database.yml”添加到您的 git 存储库中,我认为您必须将其删除:

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

然后,在你的项目中添加 database.yml 文件,就可以正常工作了。

于 2014-02-24T07:25:41.837 回答
5

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

忽略很容易:事实上,有几种方法可以做到这一点。正确的是.gitignore文件;另一个是.git/info/excludes。有关详细信息,请参阅此答案

所以,在我的脑海中:

echo database.yml >> config/.gitignore
git add config/.gitignore
git commit
于 2010-05-18T12:40:34.353 回答
0

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

git rm --cached config/database.yml 

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

git rm config/database.yml
git commit -a -m "Removed database.yml"
git push branch_name
于 2018-08-13T12:11:08.647 回答
0

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

于 2016-05-05T01:47:26.273 回答