447

Heroku には、'master' 以外のすべてのブランチを無視するポリシーがあります。

Heroku の設計者にはこのポリシーを採用する優れた理由があると確信していますが (ストレージとパフォーマンスの最適化のためだと推測しています)、開発者としての私にとっての結果は、私が取り組んでいるローカル トピック ブランチが何であれ、簡単な方法が欲しいということです。 Heroku のマスターをそのローカル トピック ブランチに切り替え、「git push heroku -f」を実行して、Heroku のマスターを上書きします。

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 など) を持つことも非常に良い考えです。その 1 つを「オリジン」と呼び、Heroku に「heroku」を使用して、「git push」が常にすべてをオリジンにバックアップし、「git push heroku」が現在のブランチを Heroku のマスター ブランチにプッシュして上書きするようにします。必要であれば。

これは機能しますか?

【リモート「ヒロク」】
    URL = git@heroku.com:my-app.git
    プッシュ = +refs/heads/*:refs/heads/master

Heroku でダミーのアプリを作成して実験することもできると思いますが、実験を始める前に、より経験豊富な人から話を聞きたいと思います。

フェッチに関しては、Heroku リポジトリが書き込み専用かどうかはあまり気にしません。すべての作業のバックアップとクローンを作成するために、GitHub などの別のリポジトリがまだあります。

脚注: この質問は、Heroku でブランチ戦略を使用した Good Git の展開と似ていますが、まったく同じではありませんか?

4

11 に答える 11

1647

https://devcenter.heroku.com/articles/git#deploying-codeを参照してください

$ git push heroku yourbranch:master
于 2012-06-21T17:35:44.463 に答える
144

ワイルドカードを使用する場合、refspec の両側に存在する必要があるため、機能し+refs/heads/*:refs/heads/masterません。しかし、あなたは使うことができます+HEAD:refs/heads/master

git config remote.heroku.push +HEAD:refs/heads/master

また、これをgit pushで直接行うこともできます:

git push heroku +HEAD:master
git push -f heroku HEAD:master
于 2010-06-05T10:54:46.513 に答える
80
git push -f heroku local_branch_name:master
于 2011-11-14T15:00:08.020 に答える
6

また、git フロー システムを使用している場合、フィーチャー ブランチが呼び出される可能性があることに注意してください。

feature/mobile_additions

stagingtwo という名前の git リモートを使用すると、heroku にプッシュするコマンドは次のようになります。

git push stagingtwo feature/mobile_additions:master
于 2014-01-22T04:57:06.487 に答える
4

heroku_sanをチェックしてください。この問題をうまく解決してくれます。

たとえば、次のことができます。

git checkout BRANCH
rake qa deploy

また、新しい Heroku インスタンスをスピンアップして、トピック ブランチを新しいサーバーにデプロイすることも簡単になります。

git checkout BRANCH
# edit config/heroku.yml with new app instance and shortname
rake shortname heroku:create deploy # auto creates deploys and migrates

もちろん、何かを頻繁に行う場合は、より単純なレーキ タスクを作成できます。

于 2010-12-21T04:24:35.843 に答える
2

これは役に立ちました。 http://jqr.github.com/2009/04/25/deploying-multiple-environments-on-heroku.html

于 2010-06-04T17:27:34.367 に答える
1

Heroku ラボは、プッシュするブランチを指定できる github アドオンを提供するようになりました。

このベータ機能に関する Heroku の記事を参照してください。

当面の間、ベータ テスターとしてサインアップする必要があります。

于 2014-12-02T02:01:07.240 に答える
0

そうあるべきだと思う

push = refs/heads/*:refs/heads/*

代わりは...

于 2010-06-05T10:05:18.153 に答える