[解決済み] Heroku: 異なるローカルGitブランチをHeroku/masterにプッシュする方法
質問
Herokuは、「master」以外のブランチを無視するポリシーを持っています。
Heroku の設計者がこのポリシーに優れた理由を持っていることは確かですが (ストレージとパフォーマンスの最適化のためでしょう)、開発者としての私にとっては、自分が作業しているローカルトピックブランチが何であれ、Heroku の master をそのローカルトピックブランチに切り替えて "git push heroku -f" で Heroku の master を上書きできるような方法が簡単に欲しいということです。
の "Pushing Refspecs" セクションを読んで得たものは、以下の通りです。 http://progit.org/book/ch9-5.html は
git push -f heroku local-topic-branch:refs/heads/master
私が本当に欲しいのは、設定ファイルでこれを設定して、"git push heroku"が常に上記を実行するようにする方法です。 ローカルトピック-ブランチ を現在のブランチの名前に置き換えてください。 もしその方法を知っている人がいたら、ぜひ教えてください。
もちろん、この場合の注意点は、私がそのHerokuアプリ/リポジトリにプッシュできる唯一の人間である場合のみ、この方法が賢明であるということです。テストチームやQAチームは、異なる候補ブランチを試すためにそのようなリポジトリを管理するかもしれませんが、彼らは全員、ある日どのブランチをプッシュするかに同意するように調整しなければならないでしょう。
もちろん、この制限を受けないリモートリポジトリ(GitHubなど)を別途用意し、そこにすべてをバックアップしておくのも非常に良いアイデアです。そのリポジトリを "origin" と呼び、Heroku には "heroku" を使って、"git push" は常に origin にすべてをバックアップし、"git push heroku" は現在私がいるブランチを Heroku の master ブランチにプッシュし、必要ならそれを上書きするようにします。
これはうまくいくでしょうか?
[リモート "heroku"]。 url = [email protected]:my-app.git push = +refs/heads/*:refs/heads/master
Herokuにダミーアプリを作ってそれで実験することもできると思いますが、実験を始める前にもっと経験豊富な人の意見を聞いてみたいです。
フェッチに関しては、Herokuのリポジトリが書き込み専用であっても、あまり気になりません。私はGitHubのような別のリポジトリを、すべての作業のバックアップとクローニングのために持っているのです。
脚注:この質問は、以下の質問と似ていますが、全く同じではありません。 Heroku で branches 戦略を使った Git の良いデプロイ方法とは?
解決方法は?
ワイルドカードを使用する場合、参照仕様の両側に存在する必要がありました。
+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
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み] Git のリモートブランチを作成する方法を教えてください。
-
[解決済み] リモートにないトラッキングブランチを削除
-
[解決済み] Gitのプッシュを正しく強制する方法は?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] masterブランチと'origin/master'が分岐している、'undiverge'ブランチの方法は?
-
[解決済み】Gitのエラー。リモートリポジトリへの接続時に「Host Key Verification Failed」。
-
[解決済み】Gitマージで「すでに最新」と報告されるが、違いはある
-
[解決済み] あなたのブランチは 'origin/master' より 3 コミット進んでいます。
-
[解決済み] git rebase fatal: 必要なリビジョンは1つです。
-
[解決済み】heroku: このアプリのデフォルト言語が検出されない
-
[gitコミット失敗の解決] 現在のブランチの先端が後ろにあるため、更新が拒否されました。
-
[解決済み] リモートの <ブランチ名> とマージするように設定されていますが、そのような参照は取得されませんでしたか?
-
[解決済み] Git pull - マージする前に移動または削除してください。
-
[解決済み] fatal: bad revision "とはどういう意味ですか?