Git和Rails:忽略database.yml

Shy*_*yam 8 git macos gitosis

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

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

是否有可能(如果是这样,如何),当从repo中提取数据时,只能"忽略"这个文件?我现在手动这样做,但是一些优雅将是最受欢迎的.

谢谢.

Evg*_*nii 8

对的,这是可能的.

git update-index --skip-worktree FILENAME

要么

git update-index --assume-unchanged FILENAME

FILENAME config/database.yml适用于您的情况.

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

  • 如果我想撤消上述任何命令怎么办? (2认同)

Aru*_*amy 6

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

git rm config/database.yml
git commit -a -m "Removed database.yml"
Run Code Online (Sandbox Code Playgroud)

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


Ama*_*dan 5

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

忽略非常简单:事实上,有几种方法可以做到这一点.这个.gitignore文件是正确的; 另一个是.git/info/excludes.有关详情,请参阅此答案.

所以,在我的头顶:

echo database.yml >> config/.gitignore
git add config/.gitignore
git commit
Run Code Online (Sandbox Code Playgroud)

  • 或者将config/database.yml放在.gitignore中 (2认同)