15

我的应用程序托管在 Heroku 上,并且我也有一个公共 github 存储库。

我的应用程序有一个包含我的亚马逊 S3 凭据的配置文件。确保文件被推送到 heroku 而不是 github 很重要。

所以我在想我可以将我的 master 分支推送到 heroku 并创建一个单独的 github 分支并确保它的 .gitignore 文件引用我的 s3.yml 文件。然后我可以执行“git push origin github:master”将 github 分支推送到 github.com

这适用于第一次提交。

但后来我切换到我的 master 分支,编写了一些很棒的代码,然后将它们全部推送到 heroku。然后我切换回我的 github 分支并执行“git merge master”,以便将新代码添加到其中。但这会导致 master 分支中的 s3.yml 和 gitignore 文件被复制到 github 分支中。提示面对面的敲打会议。

是否有关于保持分支同步同时确保未跟踪文件保持未跟踪的方法的任何建议。我可以告诉 git 不要合并不需要的 S3.yml 文件和不同的 .gitignore 文件吗?

我在这里鞭打一匹死马吗?我还不能证明为私人 github 帐户付费是合理的,但我想答案将涉及这样做......或切换到 projectlocker

我希望这个问题只是因为我的垃圾 git 技能,并且有办法....提前谢谢

编辑::: 接受的答案是一个很好的解决方案,但我刚刚找到了一个我更喜欢的新答案。在这里阅读:http: //docs.heroku.com/config-vars - Heroku 的那些聪明人对所有事情都有答案......非常棒

4

4 回答 4

10

但这会导致 master 分支中的 s3.yml 和 gitignore 文件被复制到 github 分支中

您可以使用自定义合并驱动程序来避免这种情况,该驱动程序将确保 github 分支的 .gitignore 文件将始终保留其内容,而不是从 master 合并的文件。

请参阅如何告诉 git 始终为特定文件上的冲突合并选择我的本地版本?

于 2010-02-12T06:55:17.873 回答
2

在 SVN 中,这被称为“忽略文件”,所以我认为它在 GIT 中会是类似的东西——我不使用 GIT,所以不要引用我的话,但我在 GITHub 网站上找到了这个参考:

http://github.com/guides/ignore-for-git

希望有帮助

于 2010-02-12T06:35:35.843 回答
1

您可以将“危险”文件完全从 git 中移开——例如将它们放在 ~/.yourapp 或类似的地方。(这并不能真正直接回答问题,而是很多软件的作用 - .fetchmail、.ssh、...)并且允许其他用户也这样做。

于 2010-02-12T08:20:11.257 回答
0

如果您使用名为 heroku 的分支作为“替代主”分支(带有敏感数据)而您的旧主分支没有敏感数据,那么您总是可以这样做

git merge master

所以你可以将 heroku 分支推送到 heroku 而不是 master 分支。

于 2010-02-12T06:41:07.097 回答