Was ist in Git der Unterschied zwischen origin/master und origin master?

Lesezeit: 8 Minuten

Was ist in Git der Unterschied zwischen originmaster und origin
Senthil Kumaran

Ich kenne, Ursprung ist ein Begriff für das entfernte Repository und Meister ist die Filiale dort.

Ich lasse hier absichtlich den „Kontext“ weg und hoffe, dass die Antwort nicht vom Kontext abhängen sollte. Was ist also in Git-Befehlszeilen der Unterschied zwischen Herkunft/Meister und Herkunft Meister. Gibt es einen eindeutigen Weg, um zu verstehen, wann zu verwenden ist Herkunft/Meister und wann sollte ich verwenden Herkunft Meister?

  • mögliches Duplikat von Git-Branching: Master vs. Origin/Master vs. Remotes/Origin/Master

    – Gabriel Moretti

    20. Mai 2015 um 3:52 Uhr

  • Es mag eine doppelte Frage sein, aber die Antwort von @Dietrich Epp unten ist eine klare Erklärung der Unterschiede, die dieses Problem nicht verwirrender macht.

    – Suncat2000

    8. April 2021 um 11:38 Uhr

Was ist in Git der Unterschied zwischen originmaster und origin
Dietrich Ep

(Notiz: Als diese Frage ursprünglich gepostet wurde, war „master“ der Standardname für Branches in Git. Da “main” jetzt der Standardname ist, wurde diese Antwort aktualisiert, um “main” zu verwenden, in der Hoffnung, dass dies für Leute, die neu bei Git sind, natürlicher ist.)

Hier gibt es eigentlich drei Dinge: origin main ist zwei verschiedene Dinge, und origin/main ist eine Sache. Insgesamt drei Dinge.

Zwei Filialen:

  • main ist eine Ortsgruppe
  • origin/main ist ein Remote-Tracking-Zweig (der eine lokale Kopie des Zweigs namens “main” auf der Fernbedienung namens “origin”)

Eine Fernbedienung:

  • origin ist eine Fernbedienung

Ist origin/main remote?

Die origin/main Filiale ist lokal! Jedes Mal, wenn Sie abholen origin, origin/main wird aktualisiert. Aber, origin/main kann veraltet sein, und es ist sogar möglich, dass main existiert nicht mehr auf origin. Du kannst den … benutzen --prune Möglichkeit (-p) mit git fetch Remote-Tracking-Zweige automatisch löschen, wenn der Zweig, den sie verfolgen, gelöscht wird.

Die origin/main Zweig ist nicht ein Verweis oder Zeiger auf die main abzweigen origin. Es ist eine lokale Kopie.

Beispiel: in zwei Schritten ziehen

Seit origin/main ein Zweig ist, können Sie ihn zusammenführen. Hier ist ein Pull in zwei Schritten:

Schritt eins, holen main von der Fernbedienung origin. Die main abzweigen origin abgerufen und die lokale Kopie benannt origin/main.

git fetch origin main

Dann verschmelzen Sie origin/main hinein main.

git merge origin/main

Dann können Sie Ihre neuen Änderungen einspielen main zurück zu origin:

git push origin main

Mehr Beispiele

Sie können mehrere Zweige nach Namen abrufen …

git fetch origin main stable oldstable

Sie können mehrere Zweige zusammenführen …

git merge origin/main hotfix-2275 hotfix-2276 hotfix-2290

Können Sie einen anderen Namen verwenden?

Meine örtliche Niederlassung muss nicht genannt werden main wenn ich nicht will. Er muss nicht denselben Namen wie der entfernte Zweig haben! Nehmen wir an, ich möchte meinen Zweig benennen aliceaber immer noch verfolgen origin/main:

Das kann ich ganz einfach:

git checkout -b alice --track origin/main

Sie können sehen, dass der lokale Zweig benannt ist aliceaber die entfernte Verzweigung ist benannt mainund die lokale Kopie ist origin/main. Das ist völlig in Ordnung! Es könnte ein bisschen verwirrend sein, aber vielleicht haben Sie bereits eine unterschiedlich Filiale benannt mainund Sie müssen zu einem anderen Zweig wechseln, um an einer anderen Änderung zu arbeiten.

  • Der erste Teil ist wirklich nützlich. Ich konnte nicht verbinden, wie Weitere Beispiele, insbesondere das Zusammenführen, anwendbar sind. Danke für die Antwort.

    – Senthil Kumaran

    9. August 2013 um 0:50 Uhr

  • …denn wenn ich “git checkout origin/master” mache, komme ich in einen abgetrennten Kopfzustand. Wenn ich tatsächlich eine lokale Kopie des Remote-Master-Zweigs habe, warum kann ich dann nicht daran arbeiten, sie festschreiben und etwas hinzufügen? Oder vielleicht kann ich es, aber warum ist es losgelöst?

    – Stu

    28. März 2014 um 14:51 Uhr

  • Sie können sich nur auf eine lokale Verzweigung festlegen, wenn Sie also eine entfernte Verzweigung auschecken, erhalten Sie einen “abgelösten Kopf”. Natürlich ist es eine lokale Kopie eines Remote-Zweigs, aber es ist immer noch ein Remote-Zweig. Es gibt keine Regel, dass “Meister” überhaupt mit “Ursprung/Meister” verwandt ist, sie könnten völlig unterschiedlich sein.

    – Dietrich Ep

    28. März 2014 um 15:47 Uhr

  • @Jwan622 “Ursprung ist eine Fernbedienung” … “Ursprung” ist nur ein Name, Sie können einen beliebigen Namen für Fernbedienungen wählen, aber “Ursprung” ist der Standardname. Ein Remote ist ein Repository an einem anderen Ort. Es könnte GitHub sein oder es könnte ein anderer Computer sein oder es könnte sich sogar an einem anderen Ort auf demselben Computer befinden.

    – Dietrich Ep

    30. Oktober 2014 um 19:02 Uhr

  • @Jwan622: “git remote add” ist ein Befehl, der eine neue Fernbedienung erstellt. “origin” ist der Name, den die Fernbedienung hinzufügt. Da “Herkunft” nur ein Name ist, können Sie nach Belieben einen anderen Namen wählen. Zum Beispiel, git remote add home my-server:projects/my-project fügt eine Fernbedienung namens “home” hinzu. Vielleicht möchten Sie auf die Dokumentation verweisen: git-scm.com/docs/git-remote

    – Dietrich Ep

    31. Oktober 2014 um 16:03 Uhr


1646630291 341 Was ist in Git der Unterschied zwischen originmaster und origin
Frauref

origin/master ist eine Entität (da es sich nicht um eine physische Niederlassung handelt) vertreten der Zustand der master Verzweigung auf der Fernbedienung origin.

origin master ist die Filiale master auf der Fernbedienung origin.

Also wir haben diese:

  • origin/master (Eine Darstellung oder ein Zeiger auf den entfernten Zweig)
  • Meister – (eigentliche Filiale)
  • (eigentliche Filiale)
  • (eigentliche Filiale)
  • (eigentliche Filiale)

Beispiel (in lokaler Filiale master):

git fetch # get current state of remote repository
git merge origin/master # merge state of remote master branch into local branch
git push origin master # push local branch master to remote branch master

  • Das ist falsch… origin master ist kein Zweig … es sind tatsächlich zwei verschiedene Dinge, “Ursprung” (ein Remote) und “Master” (ein lokaler Zweig).

    – Dietrich Ep

    8. August 2013 um 22:32 Uhr

  • Der Status des Remote-Master-Zweigs ist lokal vorhanden, richtig?

    – Senthil Kumaran

    9. August 2013 um 0:51 Uhr

  • ja das ist falsch origin/master ist Remote-Master-Zweig. Der lokale Zweig ist nur der Master.

    – Aniket Thakur

    12. April 2016 um 19:04 Uhr

origin/master ist die Fernbedienung master sich verzeigen

Normalerweise nachdem Sie a git fetch origin Um alle Änderungen vom Server zu bringen, würden Sie Folgendes tun: git rebase origin/master, um Ihre Änderungen zu rebasen und den Zweig auf den neuesten Index zu verschieben. Hier, origin/master bezieht sich auf den Remote-Zweig, weil Sie GIT im Grunde sagen, dass er die rebasieren soll origin/master auf den aktuellen Zweig verzweigen.

Du würdest verwenden origin master beim Schieben zum Beispiel. git push origin master weist GIT einfach an, das lokale Repository in das Remote-Repository zu verschieben master sich verzeigen.

  • Dies scheint tatsächlich dem am nächsten zu sein, wonach OP gesucht hat – origin master weist die Software an, etwas mit dem zu tun, was sich auf „Master“ im „Origin“-Repository befindet.origin/master ist eine Referenz auf die gleiche Weise f3a4d5 oder HEAD ist.

    – Nemesarial

    1. April 2019 um 7:39 Uhr

Ursprung ist ein Name für Remote-Git-URL. Unten kann es noch viele weitere Fernbedienungen geben.

bangalore => bangalore.example.com:project.git

boston => boston.example.com:project.git

soweit origin/master (Beispiel bangalore/master) geht, ist es ein Zeiger auf “master” commit on Bangalore Seite? ˅ . Sie sehen es in Ihrem Klon.

Es ist möglich, dass das entfernte Bangalore fortgeschritten ist, seit Sie “Fetch” oder “Pull” ausgeführt haben.

Angesichts der Tatsache, dass Sie wechseln können origin/master (obwohl im getrennten Zustand), während Sie Ihr Netzwerkkabel ausgesteckt haben, muss es eine lokale Darstellung des sein master Filiale bei origin.

  • In den Antworten oben und unten sagen die Leute, dass Origin/Master der Remote-Master-Zweig ist. Ihre Antwort widerspricht irgendwie dem, was sie sagen. Bitte erklären Sie es.

    – Luna Lovegood

    9. September 2018 um 12:50 Uhr

Bevor wir uns dem Unterschied zuwenden, müssen wir verstehen, was die Bedeutung von ist Ursprung im Git.

Ursprung ist nichts anderes als der ursprüngliche Name, der dem entfernten Repository gegeben wurde. Origin ist nur ein Standort, das ist alles. Im folgenden Beispiel ist die Repository-URL die Ursprung oder die Quelle der Wahrheit, wo sich Ihr Code befindet.

git-Klon https://github.com/mycode/git-awsomecode.git

Jetzt kann dieser Ursprung oder die Quelle der Wahrheit für Ihr Repository Zweige haben, dies umfasst Master oder Develop oder Sie nennen es.

Ausgehend vom Kontext können wir nun leicht unter den folgenden Dingen meinen.

  1. Herkunft Meister: Ich bin ein Master-Zweig, der sich auf dem Remote-Repository befindet, das (Origin) genannt wird.

Also wenn ich tippe Git-Pull-Origin-Master Was geschieht?.

Dadurch wird mein lokaler Master-Zweig (auf meinem lokalen Computer) aktualisiert, und alle Änderungen werden auf dem Remote-Master-Zweig (dh dem Ursprungs-Master) verfügbar sein.

Jetzt möchte ich, dass meine Änderungen mit meinem lokalen Master-Branch zusammengeführt werden, wie kann ich das erreichen?

git Ursprung/Master zusammenführen

Dadurch wird mein lokaler Master-Branch mit meinen Änderungen aktualisiert. Der Grund für origin/master ist nur eine Namenskonvention, die Sie Ihren lokalen Master-Zweig origin/master oder abcd nennen könnten. Sie hätten Ihren lokalen Zweig also anstelle von origin/master einfach master nennen können, und der Befehl für git wäre Git-Merge-Master.

Wie würde ich meinen Remote-Master-Branch mit all den lokalen Änderungen aktualisieren?

Git-Push-Origin-Master

Dieser Befehl besagt, dass alle meine lokalen Änderungen an den Ursprung (dh das Repository (https://github.com/mycode/git-awsomecode.git)) in den Master-Zweig.

  • In den Antworten oben und unten sagen die Leute, dass Origin/Master der Remote-Master-Zweig ist. Ihre Antwort widerspricht irgendwie dem, was sie sagen. Bitte erklären Sie es.

    – Luna Lovegood

    9. September 2018 um 12:50 Uhr

1646630292 31 Was ist in Git der Unterschied zwischen originmaster und origin
brennobemoura

Ich schlage vor, „develop“ und „master“ mit diesem Befehl zusammenzuführen

git checkout master

git merge --commit --no-ff --no-edit develop

Weitere Informationen finden Sie unter https://git-scm.com/docs/git-merge

963090cookie-checkWas ist in Git der Unterschied zwischen origin/master und origin master?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy