【发布时间】:2011-02-27 15:08:33
【问题描述】:
Heroku 的策略是忽略除 'master' 之外的所有分支。
虽然我确信 Heroku 的设计人员有充分的理由采用此策略(我猜是为了存储和性能优化),但作为开发人员的结果是,无论我可能从事的本地主题分支是什么,我都希望将 Heroku 的 master 切换到该本地主题分支并执行“git push heroku -f”以覆盖 Heroku 上的 master 的简单方法。
我从阅读http://progit.org/book/ch9-5.html 的“Pushing Refspecs”部分得到的是
git push -f heroku local-topic-branch:refs/heads/master
我真正想要的是一种在配置文件中进行设置的方法,以便“git push heroku”始终执行上述操作,将 local-topic-branch 替换为任何名称我目前的分支恰好是。如果有人知道如何做到这一点,请告诉我!
当然,对此的警告是,只有我是唯一可以推送到该 Heroku 应用程序/存储库的人时,这才是明智的。测试或 QA 团队可能会管理这样一个存储库来尝试不同的候选分支,但他们必须进行协调,以便他们都同意在任何一天他们将推送到哪个分支。
不用说,拥有一个单独的远程存储库(如 GitHub)也是一个非常好的主意,而没有此限制来备份所有内容。我将其称为“原点”并为 Heroku 使用“heroku”,这样“git push”总是将所有内容备份到原点,而“git push heroku”将我当前所在的任何分支推送到 Heroku 的主分支,并覆盖它如有必要。
这行得通吗?
[远程“heroku”] url = git@heroku.com:my-app.git push = +refs/heads/*:refs/heads/master在我开始实验之前,我想听听更有经验的人的意见,尽管我想我可以在 Heroku 上创建一个虚拟应用程序并进行实验。
至于获取,我并不关心 Heroku 存储库是否是只写的。我仍然有一个单独的存储库,例如 GitHub,用于备份和克隆我的所有工作。
脚注:这个问题与Good Git deployment using branches strategy with Heroku?
相似,但又不完全相同【问题讨论】:
-
目前投票最多的答案是惯用的做法(而 Imo 才是真正的正确答案)
-
另一种关于推送 refspecs 的 https 资源:git scm documentation about pushing refspecs.
标签: git github heroku push git-push