"Ursprung" ist der Name des Remote-Repositorys, in dem Sie Ihre Commits veröffentlichen möchten. Standardmäßig heißt das Standard-Remote-Repository "Ursprung", Sie können jedoch gleichzeitig mit mehreren Fernbedienungen (mit unterschiedlichen Namen) arbeiten. Weitere Informationen hier (zum Beispiel): gitref.org/remotes
Benoit Courtine
1
Beachten Sie auch, dass Origin ein "Upstream" -Repo ist
Überprüfen Sie die .git \ config-Datei, die die Zuordnungen von Aliasen zu URLs enthält. Der .git-Ordner ist standardmäßig ausgeblendet.
Abhijeet Patel
Antworten:
568
originist 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 originRepository 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 pushBefehl können Sie Fernbedienungen verwenden oder einfach eine URL direkt verwenden. Ein Beispiel, das die URL verwendet:
Kann eine einzelne Fernbedienung ein Alias für mehrere andere Fernbedienungen sein? Was wäre, wenn ich wollte, dass eine Fernbedienung auf mehrere andere Fernbedienungen übertragen wird? Zum Beispiel auf ein primäres Repo und auf ein Backup-Repo pushen? Wäre das in manchen Situationen vernünftig? EDIT: Hier gibt es mehrere Lösungen .
Yankee
1
Was ist, wenn ich das Schlüsselwort "origin" weglasse? Wenn wir "git push" sagen, werden dann nicht trotzdem alle Commits an das Remote-Repository gesendet? Das Hinzufügen des Schlüsselworts "Ursprung" erscheint überflüssig.
Mugen
@Mugen In den Dokumenten für können git pushSie 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
Kenmore
156
originist 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:
Was ist, wenn ich das Schlüsselwort "origin" weglasse? Wenn wir "git push" sagen, werden dann nicht trotzdem alle Commits an das Remote-Repository gesendet? Das Hinzufügen des Schlüsselworts "Ursprung" erscheint überflüssig.
Mugen
74
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-Befehle sind für Anfänger sehr verwirrend. Ich denke, es hat mit der Geschichte dieses Versionskontrollsystems zu tun. Frage also: git remote show originWarum nicht einfach git show origin? Es muss einen Grund geben, was ist das? Vielen Dank.
Stack0verflow
5
@ Stack0verflow: Dies wird wahrscheinlich besser als neue Frage gestellt, damit die Leute die Recherche durchführen können, wenn Sie neugierig sind. 'git show' ist bereits ein weiterer Befehl, der ein Commit anzeigt, und technisch gesehen würde nichts Sie davon abhalten, einen Zweig namens 'origin' zu haben, zusätzlich zu einer Fernbedienung namens origin ...
Jason Malinowski
44
originist der Standard - Alias Ihrer Remote - Repository auf die URL.
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.
Wenn Sie ein Repository mit klonen git clone, wird automatisch eine Remoteverbindung erstellt, origindie 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.
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.
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:
Wenn Sie von anderen geschriebene Inhalte kopieren, müssen Sie klarstellen, dass Sie dies tun, und Sie müssen immer einen Link zur Quelle einfügen. Ansonsten ist es Plagiat und ein Grund, die Antwort zu löschen. Außerdem wurde Ihre Antwort bereits veröffentlicht .
Fabio sagt Reinstate Monica
0
Die anderen Antworten besagen, dass dies originein Alias für die URL eines Remote-Repositorys ist, der nicht ganz korrekt ist. Es ist zu beachten, dass eine Adresse, die mit beginnt, httpeine 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, destinationUsw.).
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
Sie sagen, um in das
origin
Repository zu pushen . Es ist nicht erforderlich, das Remote-Repository zu benennenorigin
: 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
Im
push
Befehl können Sie Fernbedienungen verwenden oder einfach eine URL direkt verwenden. Ein Beispiel, das die URL verwendet:quelle
git push
Sie sehen, dass zuerst die Konfiguration für dieses Repository (mit dem Sie überprüfen könnengit config --list
) auf einen Schlüssel namens überprüft wirdbranch.<branchname>.remote
. Wenn dies nicht festgelegt ist, "wird standardmäßig der Ursprung verwendet" - git-scm.com/docs/git-pushorigin
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:
Weitere Informationen finden Sie unter http://git-scm.com/docs/git-remote .
quelle
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
.quelle
git remote show origin
Warum nicht einfachgit show origin
? Es muss einen Grund geben, was ist das? Vielen Dank.origin
ist der Standard - Alias Ihrer Remote - Repository auf die URL.quelle
Einfach! "origin" ist genau das, was Sie Ihr Remote-Repository genannt haben, als Sie einen Befehl wie diesen ausgeführt haben:
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.
quelle
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 vonorigin
). Es gibt auch einen anderenmaster
Zweig, der lokal erstellt wird.Weitere Informationen finden Sie in dieser SO-Frage: Git-Verzweigung: Master vs. Ursprung / Master vs. Fernbedienungen / Ursprung / Master
quelle
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.quelle
Die beste Antwort hier:
https://www.git-tower.com/learn/git/glossary/origin
quelle
Von https://www.git-tower.com/learn/git/glossary/origin :
quelle
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 verwendenorigin
, 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.).quelle
Remote (Repository-URL-Alias) → Ursprung (Upstream-Alias) → Master (Zweig-Alias);
remote
, Ebene gleiche wieworking directory
,index
,repository
,origin
, Zuordnung des lokalen Repository-Zweigs zum Remote-Repository-Zweigquelle