Git:如何忽略一个仓库中的文件并将其添加到另一个仓库?

And*_*rew 7 git heroku

我有一个Ruby on Rails应用程序,我试图在Heroku上托管.我还想使用GitHub公共(免费)存储库来跟踪更改.我需要签入一个包含Heroku远程仓库密码的文件,但忽略该文件,所以我不检查它到GitHub.有没有办法可以将文件添加到一个仓库,而忽略另一个仓库?

更新:我想通过使用Heroku配置变量来解决我在Heroku中存储密码的直接问题.但是,我仍然对将文件推送到指定的存储库的概念感兴趣.

Von*_*onC 1

您可以做的是向 GitHub 存储库添加一个涂抹脚本(过滤器驱动程序),它将:

  • 测试是否存在私有分支
  • 从该分支检出密码文件

替代文本

由于该私有分支仅存在于 Heroku 存储库中,因此涂抹脚本不会在 GitHub 存储库端执行任何操作。
但是,一旦推送到 Heroku 端,如果挂钩正在检出 Heroku 服务器上的工作目录,那么相同的过滤器驱动程序将启动并生成敏感文件。

话虽这么说,这样的敏感文件最好永远不要在任何 Git 存储库中进行版本控制,而是存储在其他地方。
smudge 脚本不是测试一些 Git 存储库内容(如私有分支),而是测试外部存储库(ssh ftp、Nexus 存储库、您选择存储这些私有信息的任何其他数据参考),提取正确的内容并生成文件。