Woher weiß „git push heroku master“, wohin und wo man zu einem anderen Repo pusht?
88
Wenn Sie in ein auf Heroku gehostetes Repository pushen, müssen Sie den folgenden Befehl ausführen:
git push heroku master
Was tun herokuund masterin diesem Befehl angeben? Woher weiß Git, wohin er gehen soll? (der Git-Pfad)
Außerdem wusste ich nicht, dass ich heroku renameeine App umbenennen kann. Sagen wir also, ich habe den App-Namen trytryheroku verwendet und jetzt verwende ich ihn, heroku create real-thingaber wenn ich drücke, wird immer noch trytryheroku gepusht ... gibt es eine Möglichkeit, pushen zu können echte Sache stattdessen?
Der 'Heroku'-Teil ist der Name der Fernbedienung, die Sie eingerichtet haben. Wenn Sie eine Heroku-App zum ersten Mal erstellen, wird ein Git-Remote-Aufruf' Heroku 'erstellt, der auf Ihre Anwendung verweist. Wenn Sie in Ihrem Projekt' Git-Fernbedienung 'eingeben zeigt Ihnen die Remote-Endpunkte. Es gibt nichts, was Sie daran hindert, "Heroku" als Namen der Fernbedienung zu verwenden. Wenn Sie mehrere Umgebungen für Ihre Anwendung haben, haben Sie möglicherweise Fernbedienungen mit dem Namen "Produktion" oder "Staging".
Der 'Master'-Teil ist der lokale Zweig, den Sie an die Fernbedienung senden möchten. Wenn Sie in einem Feature-Zweig mit dem Namen "myfeature" entwickeln und diesen für Heroku bereitstellen möchten, würden Sie dies tun.
git push heroku myfeature:master
der zusätzliche: master hier sagt, schiebe meinen lokalen myfeatureZweig in den masterZweig auf der Fernbedienung - Hinweis: Heroku kann nur vom Master-Zweig aus bereitgestellt werden.
Wenn Sie eine App die Heroku git remote umbenennen wird url ändern - tun ein , git remote -v die Ihnen zeigen , die git Repo Ihre App verwenden, werden Sie wahrscheinlich benötigen , um Ihre alten Heroku Herkunft zu löschen und die neue hinzufügen, git remote rm herokudanngit remote add heroku git@newgitpathfromcontrolpanel
Um mehr über Git zu erfahren, würde ich dieses Buch empfehlen
Sie können die URL einer Fernbedienung mit git remote set-url <remote-name> <new-url>(Git 1.7.0 und höher) oder git config remote.<remote-name>.url <new-url>oder durch Bearbeiten .git/config(möglicherweise über git config -ein Git 1.6.3 und höher) aktualisieren .
Chris Johnsen
3
das war sehr sehr hilfreich. Vielen Dank
Diego Urenia
42
TEIL 1: "Woher weiß Git, wohin er gehen soll?"
Vor dem Ausführen des oben genannten Befehls:
$ git push heroku master
Es sind immer nur wenige andere Schritte auszuführen: Git und Heroku installieren, ein lokales Git-Repo erstellen, sich bei Heroku anmelden, Heroku über die Befehlszeile anmelden, Heroku-Handle für den Hosting-Punkt erstellen ( in TEIL 2 erläutert )
1. Ein lokales Git-Repository:
$ 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. Melden Sie sich bei Heroku an (ed) und melden Sie sich über die Befehlszeile an:
$ 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
Durch Ausführen haben $ git push heroku masterSie den Code / die App an Heroku gesendet.
TEIL 2: Aber was zeigen Heroku und Meister an?
Es ist eher eine Git-Frage als Heroku - Heroku ist eine Hosting-Plattform, deren Bereitstellung von Git (Distributed Version Control System) abhängt.
Das Grundkonzept von 'Push' besteht darin, etwas (Datei, App, ..), das wir lokal (in unserer Arbeitsmaschine) haben, an einen anderen Ort zu verschieben, in diesem Fall in ein Remote-Repository (Remote-Computer).
In Git erstellen wir vor der Verwendung von 'push' eine Fernbedienung (Handle), die als Referenz auf ein Fernrepository (vollständige URL) dient. Verwenden Sie dazu den folgenden Befehl:
Wir können also davon ausgehen, dass der folgende Befehl (implizit) irgendwo ausgeführt wurde, als Sie $ heroku create erstellt haben , wodurch die Heroku-Fernbedienung für ein Heroku-Repo (URL) * erstellt wurde.
Heroku wird als Teil des Heroku-Edelsteins benötigt, um den Push zu unterstützen, und Master ist einfach der Git-Zweig, den Sie drücken. Der Git weiß, wohin er pushen muss, da Sie eine Heroku-Anwendung erstellen. Der Push wird automatisch eingerichtet, was Sie durch Eingabe sehen können
git remote -v
Wenn Sie dies ändern müssen, entfernen Sie es mit git remote rm herokuund fügen Sie dann Ihre neue Anwendung mit hinzugit remote add heroku [email protected]:your-application-15.git
Beachten Sie, dass der Remote-Zweig normalerweise unter demselben Namen wie der Zweig erstellt wird, den Sie verschieben. Dies kann jedoch geändert werden (Git Push Heroku Master: Mymaster zB oder über Confgi-Datei)
sehe
2
Diese Antwort ist falsch. herokuist der Name der Fernbedienung und ist völlig unabhängig vom Heroku-Edelstein.
Jergason
3
Andere Antworten für die erste Hälfte Ihrer Frage ...
Genau wie du hatte ich auch Mühe, diese Kleinigkeiten von Git und Heroku zu verstehen, und ich war auch verwirrt. Aber jetzt habe ich ein bisschen Klarheit, um Ihre Frage kurz beantworten zu können.
Angenommen, Sie haben Git-Setup in Ihrem Projektverzeichnis. In Ihrem Projektordner befindet sich ein versteckter .git-Ordner, der eine Datei mit dem Namen "config" enthält, die alle Informationen zu Fernbedienungen enthält.
Fernbedienungen sind Ihre individuellen Repositories, die individuell nach Herkunft, Heroku, Inszenierung, Produkt usw. benannt sind.
In Ihrem Befehl steht heroku für das Repository, das Sie dem heroku-Projekt zugeordnet haben. Öffnen Sie die Konfigurationsdatei. Sie sehen die URL.
Wenn du rennst
git push heroku master
Sie fordern git auf, den Hauptzweig Ihres aktuellen Ursprungs-Repositorys in den Hauptzweig des Heroku-Repositorys zu verschieben
Ruhe alle Details sind bereits in anderen Antworten geteilt, also nicht wiederholen wollen. Dies ist also nach meinem Verständnis nur eine kurze Antwort. Ich hoffe es hilft.
git remote set-url <remote-name> <new-url>
(Git 1.7.0 und höher) odergit config remote.<remote-name>.url <new-url>
oder durch Bearbeiten.git/config
(möglicherweise übergit config -e
in Git 1.6.3 und höher) aktualisieren .TEIL 1: "Woher weiß Git, wohin er gehen soll?"
Vor dem Ausführen des oben genannten Befehls:
Es sind immer nur wenige andere Schritte auszuführen: Git und Heroku installieren, ein lokales Git-Repo erstellen, sich bei Heroku anmelden, Heroku über die Befehlszeile anmelden, Heroku-Handle für den Hosting-Punkt erstellen ( in TEIL 2 erläutert )
1. Ein lokales Git-Repository:
2. Melden Sie sich bei Heroku an (ed) und melden Sie sich über die Befehlszeile an:
Durch Ausführen haben
$ git push heroku master
Sie den Code / die App an Heroku gesendet.TEIL 2: Aber was zeigen Heroku und Meister an?
Es ist eher eine Git-Frage als Heroku - Heroku ist eine Hosting-Plattform, deren Bereitstellung von Git (Distributed Version Control System) abhängt.
Das Grundkonzept von 'Push' besteht darin, etwas (Datei, App, ..), das wir lokal (in unserer Arbeitsmaschine) haben, an einen anderen Ort zu verschieben, in diesem Fall in ein Remote-Repository (Remote-Computer).
In Git erstellen wir vor der Verwendung von 'push' eine Fernbedienung (Handle), die als Referenz auf ein Fernrepository (vollständige URL) dient. Verwenden Sie dazu den folgenden Befehl:
Die Grundstruktur des Befehls 'push' lautet:
So
$ git push heroku master
also tatsächlich Ihren Code / Ihre App / Datei (von einem lokalen Git-Repo) zu einem Remote-Repo 'Heroku'.Sie haben sich gefragt, wann diese 'Heroku'-Fernbedienung erstellt wurde. Sie wurde hinzugefügt, als Sie $ heroku create ausgeführt haben
Beachten Sie die letzte Zeile " Git Remote Heroku hinzugefügt ".
Um es klarer zu machen, hier ein Git-Befehl zum Überprüfen / Ausgeben aller Fernbedienungen: $ git remote -v zeigt etwas Ähnliches wie das Folgende an
Wir können also davon ausgehen, dass der folgende Befehl (implizit) irgendwo ausgeführt wurde, als Sie $ heroku create erstellt haben , wodurch die Heroku-Fernbedienung für ein Heroku-Repo (URL) * erstellt wurde.
quelle
Heroku wird als Teil des Heroku-Edelsteins benötigt, um den Push zu unterstützen, und Master ist einfach der Git-Zweig, den Sie drücken. Der Git weiß, wohin er pushen muss, da Sie eine Heroku-Anwendung erstellen. Der Push wird automatisch eingerichtet, was Sie durch Eingabe sehen können
Wenn Sie dies ändern müssen, entfernen Sie es mit
git remote rm heroku
und fügen Sie dann Ihre neue Anwendung mit hinzugit remote add heroku [email protected]:your-application-15.git
quelle
heroku
ist der Name der Fernbedienung und ist völlig unabhängig vom Heroku-Edelstein.Andere Antworten für die erste Hälfte Ihrer Frage ...
Hier ist die prägnante Antwort auf die zweite Hälfte.
über https://devcenter.heroku.com/articles/renaming-apps#updating-git-remotes
quelle
Genau wie du hatte ich auch Mühe, diese Kleinigkeiten von Git und Heroku zu verstehen, und ich war auch verwirrt. Aber jetzt habe ich ein bisschen Klarheit, um Ihre Frage kurz beantworten zu können.
Angenommen, Sie haben Git-Setup in Ihrem Projektverzeichnis. In Ihrem Projektordner befindet sich ein versteckter .git-Ordner, der eine Datei mit dem Namen "config" enthält, die alle Informationen zu Fernbedienungen enthält.
Fernbedienungen sind Ihre individuellen Repositories, die individuell nach Herkunft, Heroku, Inszenierung, Produkt usw. benannt sind.
In Ihrem Befehl steht heroku für das Repository, das Sie dem heroku-Projekt zugeordnet haben. Öffnen Sie die Konfigurationsdatei. Sie sehen die URL.
Wenn du rennst
Sie fordern git auf, den Hauptzweig Ihres aktuellen Ursprungs-Repositorys in den Hauptzweig des Heroku-Repositorys zu verschieben
Ruhe alle Details sind bereits in anderen Antworten geteilt, also nicht wiederholen wollen. Dies ist also nach meinem Verständnis nur eine kurze Antwort. Ich hoffe es hilft.
quelle
Ich habe die Antwort gefunden, die Sie bei Heroku interessieren könnte:
https://dashboard.heroku.com/apps/NAMEOFYOURAPP/deploy/heroku-git
Auf diese Weise weiß Heroku, wohin er schieben muss!
quelle