Wenn ich renne:
git push origin branchname
Was genau ist origin
und warum muss ich es vor dem Filialnamen eingeben?
Wenn ich renne:
git push origin branchname
Was genau ist origin
und warum muss ich es vor dem Filialnamen eingeben?
Antworten:
origin
ist ein Alias auf Ihrem System für ein bestimmtes Remote-Repository. Es ist eigentlich keine Eigenschaft dieses Repositorys.
Indem ich es tue
git push origin branchname
Sie sagen, um in das origin
Repository zu pushen . Es ist nicht erforderlich, das Remote-Repository zu benennen origin
: Tatsächlich kann dasselbe Repository einen anderen Alias für einen anderen Entwickler haben.
Fernbedienungen sind einfach ein Alias , in dem die URL von Repositorys gespeichert wird. Mit können Sie sehen, welche URL zu jeder Fernbedienung gehört
git remote -v
Im push
Befehl können Sie Fernbedienungen verwenden oder einfach eine URL direkt verwenden. Ein Beispiel, das die URL verwendet:
git push git@github.com:git/git.git master
git push
Sie sehen, dass zuerst die Konfiguration für dieses Repository (mit dem Sie überprüfen können git config --list
) auf einen Schlüssel namens überprüft wird branch.<branchname>.remote
. Wenn dies nicht festgelegt ist, "wird standardmäßig der Ursprung verwendet" - git-scm.com/docs/git-push
origin
ist nicht der Name des Remote-Repositorys. Es handelt sich vielmehr um einen lokalen Alias , der anstelle der URL des Remote-Repositorys als Schlüssel festgelegt wurde.
Dadurch wird vermieden, dass der Benutzer die gesamte Remote-URL eingeben muss, wenn er einen Push anfordert.
Dieser Name wird standardmäßig und zur Konvention von Git festgelegt, wenn zum ersten Mal von einer Fernbedienung geklont wird.
Dieser Aliasname ist nicht fest codiert und kann über die folgende Eingabeaufforderung geändert werden:
git remote rename origin mynewalias
Weitere Informationen finden Sie unter http://git-scm.com/docs/git-remote .
Git hat das Konzept von "Fernbedienungen", die einfach URLs zu anderen Kopien Ihres Repositorys sind. Wenn Sie ein anderes Repository klonen, erstellt Git automatisch eine Fernbedienung mit dem Namen "origin" und zeigt darauf.
Sie können weitere Informationen zur Fernbedienung anzeigen, indem Sie Folgendes eingeben git remote show origin
.
git remote show origin
Warum nicht einfach git show origin
? Es muss einen Grund geben, was ist das? Vielen Dank.
origin
ist der Standard - Alias Ihrer Remote - Repository auf die URL.
Einfach! "origin" ist genau das, was Sie Ihr Remote-Repository genannt haben, als Sie einen Befehl wie diesen ausgeführt haben:
git remote add origin git@github.com:USERNAME/REPOSITORY-NAME.git
Von da an weiß Git, dass "origin" auf dieses bestimmte Repository verweist (in diesem Fall ein GitHub-Repository). Sie hätten es "Github" oder "Repo" oder was auch immer Sie wollten nennen können.
Das hat mich auch verwirrt, und unten ist, was ich gelernt habe.
Wenn Sie ein Repository klonen, zum Beispiel von GitHub:
origin
ist der Alias für die URL, von der Sie das Repository geklont haben. Beachten Sie, dass Sie diesen Alias ändern können.
Es gibt einen master
Zweig im Remote-Repository (Alias von origin
). Es gibt auch einen anderen master
Zweig, der lokal erstellt wird.
Weitere Informationen finden Sie in dieser SO-Frage: Git-Verzweigung: Master vs. Ursprung / Master vs. Fernbedienungen / Ursprung / Master
Wenn Sie ein Repository mit klonen git clone
, wird automatisch eine Remoteverbindung erstellt, origin
die auf das geklonte Repository verweist. Dies ist nützlich für Entwickler, die eine lokale Kopie eines zentralen Repositorys erstellen, da es eine einfache Möglichkeit bietet, vorgelagerte Änderungen abzurufen oder lokale Commits zu veröffentlichen. Dieses Verhalten ist auch der Grund, warum die meisten Git-basierten Projekte ihren zentralen Repository-Ursprung nennen.
Die beste Antwort hier:
https://www.git-tower.com/learn/git/glossary/origin
In Git ist "origin" eine Abkürzung für das Remote-Repository, aus dem ein Projekt ursprünglich geklont wurde. Genauer gesagt wird es anstelle der URL des ursprünglichen Repositorys verwendet - und erleichtert dadurch die Referenzierung erheblich.
Von https://www.git-tower.com/learn/git/glossary/origin :
In Git ist "origin" eine Abkürzung für das Remote-Repository, aus dem ein Projekt ursprünglich geklont wurde. Genauer gesagt wird es anstelle der URL des ursprünglichen Repositorys verwendet - und erleichtert dadurch die Referenzierung erheblich.
Beachten Sie, dass der Ursprung keineswegs ein "magischer" Name ist, sondern nur eine Standardkonvention. Obwohl es sinnvoll ist, diese Konvention unberührt zu lassen, können Sie sie perfekt umbenennen, ohne die Funktionalität zu verlieren.
Im folgenden Beispiel wird der URL-Parameter zum Befehl "clone" zum "Ursprung" für das geklonte lokale Repository:
git clone https://github.com/gittower/git-crash-course.git
Die anderen Antworten besagen, dass dies origin
ein Alias für die URL eines Remote-Repositorys ist, der nicht ganz korrekt ist. Es ist zu beachten, dass eine Adresse, die mit beginnt, http
eine URL ist, während eine Adresse, die mit beginnt, git@
eine URI oder eine universelle Ressourcenkennung ist.
Alle URLs sind URIs, aber nicht alle URIs sind URLs.
Kurz gesagt, wenn Sie tippen git remote add origin <URI>
, teilen Sie Ihrem lokalen Git mit, dass Sie, wenn Sie das Wort verwenden origin
, tatsächlich den von Ihnen angegebenen URI meinen. Stellen Sie sich das wie eine Variable vor, die einen Wert enthält.
Und genau wie eine Variable, können Sie es nennen , was Sie wollen (zB. github
, heroku
, destination
Usw.).
Remote (Repository-URL-Alias) → Ursprung (Upstream-Alias) → Master (Zweig-Alias);
remote
, Ebene gleiche wie working directory
, index
, repository
,
origin
, Zuordnung des lokalen Repository-Zweigs zum Remote-Repository-Zweig