つまり、herokuがgitリポジトリとして機能することは理解していますが、リポジトリだけでなくgithubも使用したいとします。2つのリポジトリがあり、両方が同期するように設定するにはどうすればよいですか?
6 に答える
gitインストールで複数のリモートを持つことができます。githubリモートとherokuリモートがあります。
すでにgithubがセットアップされていると仮定すると、おそらく次のようなものでgithubにプッシュします。
git push origin master
origin
はあなたのリモートであり、master
あなたのブランチです。
Herokuの使用を開始する際の指示に従って、目的の言語を選択し、チュートリアルを続行してください。このチュートリアルでは、すでにgithubがセットアップされていることを前提としており、をheroku
介してリモートを作成する方法を示しますheroku create
。
次に、通常どおりgithubにプッシュし、次の方法でherokuにプッシュします。
git push heroku master
同じ形式が適用されます-heroku
はリモートであり、master
はブランチです。ここで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
複数のリモートにプッシュおよびプルできるようにする場合:
最初にそれらを追加します:
git remote add origin <github repo>
git remote add heroku git@heroku.com:<app name>.git
それでpush
git push origin master
git push heroku master
両方のリモコンに同時にプッシュしたい場合:
構成ファイルを編集origin
して、herokuとgithubの両方を指すようにします。
git config -e
追加/置換:
[remote "origin"]
url = git@github.com:username/somerepo.git
url = ssh://git@bitbucket.org/username/somerepo.git
githubを使用しているので、次の場所に移動してherokuと統合できます。
https://dashboard.heroku.com/apps/<app name>/settings#github-repo
リポジトリの名前を追加します。
GitHubにコミットした後、自動的にherokuにプッシュする場合:
TravisCIのような継続的インテグレーションプラットフォームを使用する必要があります。
これを機能させるための手順は次のとおりです。本番環境にプッシュするものに注意し、デプロイする前に機能することを確認してください。それぞれの方法には長所と短所があります。
これは実際に推奨されるケースだと思います。Heroku gitリポジトリ関数は、実際にはデプロイ用であり、コード管理用ではありません。
githubを使用して通常どおりコードを管理しますが、デプロイする準備ができたら、さらにHerokugitリポジトリにプッシュします。自動化されたツールなどと同期させる必要はありません。たとえば、デプロイせずにgithubリポジトリにプッシュできるようにして、未完成の機能をバックアップまたはコラボレーションしたり、個別のステージング環境と本番環境を維持したりできるようにする必要があるためです。 。
私はこれをかなり頻繁に行います。Herokuのサイトを作成しましたが、アーカイブの目的でソースをGithubに保持したいと思います。リモコンを設定しました:
git remote add origin <github repo>
と
git remote add heroku <heroku repo>
その後、あなたはちょうどそしてそれからすることができgit push origin master
ますgit push heroku master
。Herokuでは、コミット差分を確認する目的でgithubリポジトリを関連付けることもできます。
誰も前にそれについて言及しなかったので。Gitでは、各リモートに複数のURLを追加できるようになりました。このようにしてください:
これにより、githubから追加fetch
されます。push
git remote add origin git@github.com:yourName/yourGithubRepo.git
これは次のようにオーバーライドさgithub push
れますheroku push
:
git remote set-url origin --push --add git@heroku.com:yourHerokuRepo.git
これは再び追加されgithub push
ます:
git remote set-url origin --push --add git@github.com:yourName/yourGithubRepo.git
これが最終出力です。
$ git remote -v
origin git@github.com:yourName/yourGithubRepo.git (fetch)
origin git@heroku.com:yourHerokuRepo.git (push)
origin git@github.com:yourName/yourGithubRepo.git (push)
その後、実行します。
git push
動作する代わりに、アップストリームの設定についてsthと言っている場合は、最初に次のように入力します。
git push --set-upstream origin master
2つのリポジトリと1つだけをGithubで管理したくない場合は、次の方法で管理できます(Herokuアプリを既に作成していると仮定します)。
1)まず、Herokuリポジトリをローカルに複製します。
2)次に、Githubリポジトリを作成し、このローカルをそこにプッシュします。
3)それが終わったら、werckerを使用します
4)「アプリケーションの追加」に移動し、詳細を入力します。それらはかなり単純です。作成したGithubリポジトリを使用します。
5)アプリケーションを追加した後、設定に移動し、デプロイターゲットを追加します。リストからherokuを選択します。次に、作成したHerokuアプリと、プッシュするブランチを選択します。
それでおしまい!完了です。これで、GithubリポジトリがHerokuアプリケーションと同期されます。を使用してGithubリポジトリにプッシュするもの
git push origin master
Herokuアプリケーションに自動的にデプロイされます。このようにして、Githubにリポジトリを管理し、処理するリポジトリは1つだけになります。:)