web-dev-qa-db-ja.com

「git Push heroku master」は、プッシュ先と異なるレポジトリにプッシュする方法をどのように知っていますか?

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

git Push heroku master

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

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

83
Sarah Wong

「heroku」の部分は、セットアップしたリモートの名前です-herokuアプリを初めて作成するとき、アプリケーションを指すgitリモート呼び出し「heroku」を作成するとき-プロジェクト内で「git remote」と入力するとリモートエンドポイントが表示されます。リモートの名前として「heroku」を使用することを妨げるものは何もありません。アプリケーションに複数の環境がある場合は、たとえばproductionまたはstagingという名前のリモートを使用できます。

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

git Push heroku myfeature:master

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

アプリの名前を変更すると、heroku gitリモートURLが変更されます-git remote -vこれは、アプリが使用しているgitリポジトリを表示します。おそらく、古いheroku Originを削除して新しいものを追加する必要があるでしょう、git remote rm herokuその後git remote add heroku git@newgitpathfromcontrolpanel

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

95
John Beynon

パート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にサインアップ(ed)し、コマンドラインからログイン:

$ heroku login
Enter your Heroku credentials.
Email: [email protected]
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:ただし、herokuおよびmasterの意味?

これはHerokuよりもGitの質問です。Herokuはホスティングプラットフォームであり、Git(Distributed Version Control System)をデプロイに依存しています。

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

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

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

「プッシュ」コマンドの基本構造は次のとおりです。

$ 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/ | [email protected]:stark-fog-398.git
Git remote heroku added

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

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

$ git remote -v
heroku     [email protected]:somerepo.git (fetch)
heroku     [email protected]:somerepo.git (Push)

したがって、$ heroku createを実行したときに、次のコマンドが(暗黙的に)どこかで実行されたと仮定できます。 url)*

$ git remote add heroku [email protected]:somerepo.git
38
Nabeel Ahmed

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

git remote -v

変更する必要がある場合は、git remote rm herokuで削除してから、git remote add heroku [email protected]:your-application-15.gitで新しいアプリケーションを追加します

9
Will Ayd

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

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

リモートは、Origin、heroku、staging、prodなどのように個別に名前が付けられた個々のリポジトリです。

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

走るとき

git Push heroku master

現在のOriginリポジトリのmasterブランチをherokuリポジトリのmasterブランチにプッシュするようgitに指示しています

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

1
Sameer