Holen Sie sich das Neueste aus dem Git-Zweig

Lesezeit: 4 Minuten

Benutzer-Avatar
Nageswaran

Ich habe etwas aus dem Git-Repository geklont und den Zweig gewechselt

git clone ssh://11.21.3.12:23211/dir1/dir2 dir
git branch branch1

Ich habe einige Änderungen in meinem Lokal vorgenommen und sie übernommen. Und jemand anderes hat auch geklont und es in das Git-Repository geschoben.

Jetzt möchte ich die Klonkopie von branch1 in meinem lokalen (bedeutet, ich möchte nicht mein Update, sondern sein Update)

  • Du meinst wie git push origin branch1?

    – Shahbaz

    15. November 2011 um 9:29 Uhr

  • Ah sorry, ich dachte du wolltest dein Update pushen.

    – Shahbaz

    15. November 2011 um 9:34 Uhr

  • Nein, ich will mein Update nicht. Ich will nur sein Update nur.

    – Nageswaran

    15. November 2011 um 9:36 Uhr

  • Sie möchten einfach nur das Neueste von der zentralen Stelle erhalten, oder? – Titel sagt alles.

    – BrainSlugs83

    31. August 2014 um 2:34 Uhr

Benutzer-Avatar
KarlB

Ihre Änderungen befinden sich in einem anderen Zweig als der ursprüngliche Zweig, was die Dinge vereinfacht, da Sie Updates in einem Zweig erhalten und Ihre Arbeit in einem anderen Zweig ist.

Angenommen, der ursprüngliche Zweig wird benannt masterwas bei 99 % der Git-Repos der Fall ist, müssen Sie den Ursprungszustand abrufen und zusammenführen origin/master Updates in Ihrem lokalen master:

 git fetch origin
 git checkout master
 git merge origin/master

Um zu Ihrer Filiale zu wechseln, tun Sie es einfach

 git checkout branch1

  • @Surendhar, im Ernst, versuche es zu lernen fetch/merge. pull wird dir eines Tages Schwierigkeiten bereiten und du wärst zu sehr daran gewöhnt, um dich darauf umzustellen fetch/merge

    – Shahbaz

    15. November 2011 um 9:53 Uhr


  • äh … das hat einfach nichts bewirkt — es sagt, es sei bereits auf dem neuesten Stand, bereits im Master usw. — es ist ungefähr ein Jahr her, seit ich diesen Zweig geklont habe, und ich weiß, dass es eine Menge Änderungen gegeben hat.

    – BrainSlugs83

    31. August 2014 um 2:35 Uhr

  • @BrainSlugs83 du klonst keinen Branch, sondern ein Repository. Stellen Sie sicher, dass die Fernbedienung mit auf die erwartete URL zeigt git remote -v

    – KarlB

    1. September 2014 um 9:10 Uhr

  • Nachdem ich hier oben Befehle ausgeführt hatte, bemerkte ich im Git-Verzeichnis, dass die HEAD-, Index- und Packed-Refs-Dateien unterschiedlich sind. Ist dies nur, um verwandte Zweige zu verfolgen?

    – RetroCoder

    6. März 2017 um 18:10 Uhr

  • @RetroCoder Sie haben Änderungen aus dem Remote-Repository abgerufen, daher ist es normal, dass diese Referenzen aktualisiert werden, um neue Objekte zu bestätigen. HEAD wird jedes Mal aktualisiert, wenn Sie einen Zweig auschecken oder einen neuen Commit durchführen

    – KarlB

    7. März 2017 um 9:43 Uhr

Verwenden Sie Git-Pull:

git pull origin yourbranch

Benutzer-Avatar
Shahbaz

Obwohl git pull origin yourbranch funktioniert, es ist nicht wirklich eine gute Idee

Alternativ können Sie Folgendes tun:

git fetch origin
git merge origin/yourbranch

Die erste Zeile ruft alle Zweige vom Ursprung ab, wird jedoch nicht mit Ihren Zweigen zusammengeführt. Dies vervollständigt einfach Ihre Kopie des Repositorys.

Die zweite Zeile führt Ihren aktuellen Zweig mit dem von zusammen yourbranch von denen Sie geholt haben origin (Das ist einer von Ihnen remotes).

Dies ist vorausgesetzt origin zeigt auf das Repository unter Adresse ssh://11.21.3.12:23211/dir1/dir2

  • Wenn ich es zusammenführe, sage * Branch Master -> FETCH_HEAD. Irgendeine Lösungsmöglichkeit?

    – NIKHIL CHANDRA ROY

    7. September 2020 um 14:31 Uhr

  • @NIKHILCHANDRAROY Bitte stellen Sie eine neue Frage mit weiteren Details.

    – Shahbaz

    23. September 2020 um 16:26 Uhr

  1. Verwenden git fetch um alle verfügbaren Zweige zu erhalten.
  2. Kasse zur gewünschten Filiale mit git checkout <branch>
  3. Dann, git pull origin <branch> um die neuesten Änderungen zu erhalten.

Hinweis:- Wenn Ihre Zweigstelle mit der Remote-Zweigstelle auf dem neuesten Stand ist, sehen Sie Folgendes.

Already up to date.

Wenn Sie meinen, Sie möchten, dass der Pull lokale Änderungen überschreibt und die Zusammenführung so durchführt, als ob der Arbeitsbaum sauber wäre, dann reinigen Sie den Arbeitsbaum:

git reset --hard
git pull

Wenn es nicht nachverfolgte lokale Dateien gibt, können Sie sie mit git clean entfernen.

git clean -f um nicht getrackte Dateien zu entfernen
-df um nicht verfolgte Dateien und Verzeichnisse zu entfernen
-xdf um nicht verfolgte oder ignorierte Dateien oder Verzeichnisse zu entfernen

Wenn Sie andererseits die lokalen Änderungen irgendwie beibehalten möchten, würden Sie stash verwenden, um sie vor dem Ziehen zu verstecken, und sie anschließend erneut anwenden:

git stash
git pull
git stash pop

Ich denke jedoch nicht, dass es sinnvoll ist, die Änderungen buchstäblich zu ignorieren – die Hälfte von Pull besteht aus Merge, und es müssen die festgeschriebenen Versionen des Inhalts mit den abgerufenen Versionen zusammengeführt werden.

Benutzer-Avatar
Robin Clave

Wenn Sie ein Repository geforkt haben, löschen Sie Ihre geforkte Kopie und forken Sie sie erneut vom Master.

1229050cookie-checkHolen Sie sich das Neueste aus dem Git-Zweig

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

Privacy policy