「git push heroku master」は、どこにプッシュするか、別のリポジトリにプッシュする方法をどのようにして知るのですか?


91

Herokuでホストされているリポジトリにプッシュする場合、次のコマンドを実行する必要があります。

git push heroku master

このコマンドで何herokumaster示し、何を示しますか?gitはどこにプッシュするかをどのようにして知るのですか?(gitパス)

また、heroku renameアプリの名前の変更に使用できることを知りませんでしたので、以前は、trytryherokuというアプリ名を使用してheroku create real-thingいたと言いましたが、今は使用していますが、プッシュしても、trytryherokuにプッシュされます...にプッシュする方法はありますか?代わりに本物?

回答:


106

'heroku'の部分は、セットアップしたリモートの名前です。最初にherokuアプリを作成するときに、アプリケーションを指すgitリモートコール 'heroku'を作成します-プロジェクト内で「git remote」と入力すると、リモートエンドポイントが表示されます。リモートの名前として「heroku」を使用することに縛られることは何もありません。たとえば、アプリケーションに複数の環境がある場合、リモートには、プロダクションやステージングなどの名前が付いている場合があります。

「マスター」部分は、リモートにプッシュするローカルブランチです。たとえば 'myfeature'という名前の機能ブランチで開発し、それをherokuにデプロイする場合は、次のようにします。

git push heroku myfeature:master

追加の:masterは、私のローカルmyfeatureブランチをmasterリモートのブランチにプッシュすることを示しています-注:herokuはマスターブランチからのみデプロイできます。

アプリの名前を変更する場合HerokuのgitのリモートURLが変更されます-やるgit remote -v gitのアプリが使用しているレポあなたは、あなたはおそらく、あなたの古いHerokuの原点を削除し、新しいものを追加する必要があります表示されているgit remote rm heroku、その後にgit remote add heroku git@newgitpathfromcontrolpanel

Gitの詳細については、この本をお勧めします


リモートのURLはgit remote set-url <remote-name> <new-url>(Git 1.7.0以降)、またはgit config remote.<remote-name>.url <new-url>、または編集.git/config(おそらくgit config -eGit 1.6.3以降で)によって更新できます。
Chris Johnsen、2011年

3
それはとても役に立ちました。ありがとう
ディエゴウレニア2012年

43

パート1:「gitはどこにプッシュするかをどのようにして知るのですか?」

上記のコマンドを実行する前に:

$ git push heroku master

実行する他のステップは常にいくつかあります。GitとHerokuのインストール、ローカルGitリポジトリの作成、herokuへのサインアップ、コマンドラインからのherokuへのログイン、ホスティングポイントへのherokuハンドルの作成(パート2で説明

1.ローカルGitリポジトリ:

    $ git init
    Initialized empty Git repository in .git/
    $ git add .
    $ git commit -m "my first commit"
    Created initial commit 5df2d09: my first commit
     44 files changed, 8393 insertions(+), 0 deletions(-)
     create mode 100644 README
     create mode 100644 Procfile
     create mode 100644 app/controllers/source_file
    ...

2. Herokuにサインアップし、コマンドラインからログインします。

$ heroku login
Enter your Heroku credentials.
Email: user@example.com
Password:
Could not find an existing public key.
Would you like to generate one? [Yn]
Generating new SSH public key.
Uploading ssh public key /Users/adam/.ssh/id_rsa.pub

実行$ git push heroku masterすると、コード/アプリがHerokuにプッシュされます。


パート2:しかし、herokumasterは何を示していますか?

HerokuはGitの問題です。Herokuはホスティングプラットフォームであり、Git(分散バージョン管理システム)に依存して展開されています。

「プッシュ」の基本的な概念は、ローカル(作業マシン内)にあるもの(ファイル、アプリなど)を他の場所、この場合はリモートリポジトリ(リモートマシン)にプッシュすることです。

Gitでは、「プッシュ」を使用する前に、次のコマンドを使用して、リモートリポジトリ(完全なURL)への参照として機能するリモート(ハンドル)を作成します。

$ git remote add <remote-name-of-our-choice> <URL-where-you-be-pushing-yourapp>

「push」コマンドの基本構造は次のとおりです。

$ git push <remote-name> <branch>

つまり$ git push heroku master、実際には(ローカルのGitリポジトリから)コード/アプリ/ファイルをリモートリポジトリ 'heroku'にプッシュしています。

この「heroku」リモートがいつ作成されたのか疑問に思いました、$ heroku createを実行したときに追加されました

$ heroku create
Creating stark-fog-398... done, stack is cedar
http://stark-fog-398.herokuapp.com/ | git@heroku.com:stark-fog-398.git
Git remote heroku added

最後の行「Git remote heroku added」に注意してください。

より明確にするために、すべてのリモートをチェック/出力するGitコマンドを次に示します。$ git remote -vは次のようなものを表示します

$ git remote -v
heroku     git@heroku.com:somerepo.git (fetch)
heroku     git@heroku.com:somerepo.git (push)

私たちは、次のコマンドが実行されたと仮定することができますので、(暗黙的に)どこかで、あなたは$をしたとき、Herokuのは、作成故に、あるHerokuのレポ(URL)へのリモートHerokuのを作成し、*

$ git remote add heroku git@heroku.com:somerepo.git

12

herokuは、プッシュを支援するためにheroku gemの一部として必要であり、マスターは単にプッシュするgitブランチです。hergitアプリケーションを作成するため、gitはどこにプッシュするかを認識します。プッシュは自動的にセットアップされます。これは、

git remote -v

それを変更する必要がある場合は、それを削除してgit remote rm herokuから、新しいアプリケーションを追加してくださいgit remote add heroku git@heroku.com:your-application-15.git


リモートブランチは通常、プッシュするブランチと同じ名前で作成されることに注意してください。ただし、これは変更できます(git push heroku master:mymaster eg、またはconfgiファイル経由)
sehe

2
この答えは正しくありません。herokuはリモートの名前であり、heroku gemから完全に切り離されています。
ジャーガソン2012


1

あなたと同じように、私はこれらのgitとherokuの要点を理解するのに苦労し、私も混乱しました。しかし今、私はあなたの質問に簡単に答えることができるように少し明確にしています。

プロジェクトディレクトリにgitセットアップがあると仮定します。リモートに関するすべての情報を保持する「config」という名前のファイルを含むプロジェクトフォルダーに.git隠しフォルダーが存在します。

リモートは、origin、heroku、ステージング、製品などのように個別に名前が付けられた個別のリポジトリです。

コマンドのherokuは、herokuプロジェクトにマップしたリポジトリを表します。設定ファイルを開くと、URLが表示されます。

あなたが走るとき

git push heroku master

現在のオリジンリポジトリのマスターブランチをherokuリポジトリのマスターブランチにプッシュするようにgitに指示している

残りのすべての詳細はすでに他の回答で共有されているため、繰り返したくない。だから、これは私の理解によるとほんの短い答えです。それが役に立てば幸い。


0

しかし、私がプッシュしても、それはまだtrytryherokuにプッシュします...代わりに実際のものにプッシュする方法はありますか?

herokuに興味があるかもしれない答えを見つけました:

https://dashboard.heroku.com/apps/NAMEOFYOURAPP/deploy/heroku-git

$ cd my-project/
$ git init
$ heroku git:remote -a nameofyourapp

$ git add .
$ git commit -am "make it better"
$ git push heroku master

そうすることで、herokuはどこを押すべきかを知ることができます!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.