web-dev-qa-db-ja.com

herokuとgithubを同時に

だから、私はherokuがgitリポジトリとして機能することを理解していますが、githubとリポジトリを使用したいとしましょう。 2つのリポジトリがあり、両方が同期するように設定するにはどうすればよいですか?

59
K L

Gitインストールで複数のリモートを使用できます。 githubリモートとherokuリモートがあります。

すでにgithubがセットアップされていると仮定すると、おそらく次のようなものでgithubにプッシュします:

git Push Origin master

Originはリモート、masterはブランチです。

Herokuの概要 の指示に従って、希望する言語を選択し、チュートリアルを続けます。このチュートリアルでは、すでにgithubがセットアップされていることを想定しており、heroku create経由でherokuリモートを作成する方法を示します。

次に、通常どおりgithubにプッシュし、次の方法でherokuにプッシュします。

git Push heroku master

同じフォーマットが適用されます-herokuはリモートで、masterはブランチです。ここでGithubリモートを上書きするのではなく、別のGithubを追加するので、次のようなワークフローで1つのコミットを介して両方のプッシュを実行できます。

git add .
git commit -m "Going to Push to Heroku and Git"
git Push Origin master -- Push to Github Master branch
git Push heroku master -- Push to Heroku
85
Dan Hoerst

複数のリモートにプッシュおよびプルできるようにする場合:

最初に追加します:

git remote add Origin <github repo>
git remote add heroku [email protected]:<app name>.git

次にPush

git Push Origin master
git Push heroku master

両方のリモートに同時にプッシュする場合:

Originがherokuとgithubの両方を指すように構成ファイルを編集します。

git config -e

追加/置換:

[remote "Origin"]
    url = [email protected]:username/somerepo.git
    url = ssh://[email protected]/username/somerepo.git

Githubを使用しているため、次の場所に移動してherokuと統合できます。

https://dashboard.heroku.com/apps/<app name>/settings#github-repo

リポジトリの名前を追加します。

github integration

GitHubへのコミット後にherokuに自動的にプッシュする場合:

TravisCI のような継続的統合プラットフォームを使用する必要があります。

この作業を行う手順は次のとおりです。 本番環境にプッシュするものに注意し、デプロイする前に機能することを確認してください。各メソッドには長所と短所があります。

34
0xcaff

これは実際に推奨されるケースだと思います。 Herokuのgitリポジトリ機能は、コード管理ではなく、実際にデプロイ用です。

通常どおりgithubを使用してコードを管理しますが、デプロイの準備ができたらさらにHeroku gitリポジトリにプッシュします。自動ツールなどと同期させる必要はありません。たとえば、未完成の機能をバックアップまたはコラボレーションしたり、別個のステージング環境と実稼働環境を維持できるように、デプロイせずにgithubリポジトリにプッシュできるようにするためです。 。

23

私はこれをかなり頻繁に行います。 Heroku用のサイトを作成しましたが、アーカイブの目的でGithubにソースを保持したいです。リモートにセットアップします。

git remote add Origin <github repo>

そして

git remote add heroku <heroku repo>

次に、git Push Origin master その後 git Push heroku master。 Herokuでは、コミットの差分を確認する目的でgithubリポジトリを関連付けることもできます。

16
Richard Brown

前に誰も言及しなかったので。 Gitでは、各リモートに複数のURLを追加できるようになりました。このようにしてください:

これはgithubからfetchPushを追加します:

git remote add Origin [email protected]:yourName/yourGithubRepo.git

これはgithub Pushheroku Pushでオーバーライドします:

git remote set-url Origin --Push --add [email protected]:yourHerokuRepo.git

これはgithub Pushを再追加します:

git remote set-url Origin --Push --add [email protected]:yourName/yourGithubRepo.git

それが最終的な出力です。

$ git remote -v
Origin  [email protected]:yourName/yourGithubRepo.git (fetch)
Origin  [email protected]:yourHerokuRepo.git (Push)
Origin  [email protected]:yourName/yourGithubRepo.git (Push)

その後、実行するだけです:

git Push

動作する代わりに、アップストリームの設定についてsthと言っている場合は、最初に次のように入力します。

git Push --set-upstream Origin master 
12
meeDamian

2つのリポジトリを管理するのではなく、Githubのリポジトリだけを管理する場合は、次のようにします(既にHerokuアプリを作成済みであると仮定)。

1)まず、Herokuリポジトリをローカルにクローンします。

2)次に、Githubリポジトリを作成し、このローカルをそこにプッシュします。

3)完了したら、 wercker を使用します

4)[アプリケーションの追加]に移動して、詳細を入力します。それらはかなり単純です。作成したGithubリポジトリを使用します。

5)アプリケーションgoto設定を追加した後、Deploy Targetを追加します。リストからherokuを選択します。次に、作成したEarilerアプリとプッシュするブランチを選択します。

それでおしまい!できました。これで、GithubリポジトリがHerokuアプリケーションと同期しました。使用してGithubリポジトリにプッシュするもの

git Push Origin master

herokuアプリケーションに自動的にデプロイされます。このようにして、Githubに管理するリポジトリがあり、対処するリポジトリは1つだけです。 :)

2
aandis