git: Dateien aus einem anderen Zweig in den aktuellen Zweig auschecken (HEAD nicht in den anderen Zweig wechseln)

Lesezeit: 2 Minuten

git Dateien aus einem anderen Zweig in den aktuellen Zweig
Kache

Ich möchte eine andere Version der Dateien, die in einem anderen Zweig vorhanden sind, in meinen aktuellen Zweig laden.

git help checkout sagt:

DESCRIPTION
   Updates files in the working tree to match the version in the index or
   the specified tree. If no paths are given, git checkout will also
   update HEAD to set the specified branch as the current branch.

Gibt es eine Möglichkeit, all diese Dateien auszuchecken, aber nicht KOPF aktualisieren?

  • @BobbyA Ich glaube nicht. 1: Die Frage und die Antwort beziehen sich auf etwas anderes (Kollisionen von Zweig- und Datei-/Ordnernamen). 2: Diese Frage ist älter.

    – Kache

    12. Juni 18 um 18:02 Uhr

  • Ich habe die falsche Frage markiert (mehrere Tabs), habe es sofort bemerkt und die Markierung zurückgezogen. Mir war aber nicht aufgefallen, dass es einen Kommentar gibt. Ich wurde erwischt! Entschuldigung 🙂 Ich lösche diesen Kommentar jetzt, da er irreführend ist

    – BobbyA

    12. Juni 18 um 22:04 Uhr


git Dateien aus einem anderen Zweig in den aktuellen Zweig
Kache

Auschecken durch Angabe des aktuellen Pfads, .:

git checkout other-branch-name -- .

Diese Operation ähnelt dem Umschalten von HEAD auf einen anderen Zweig, ohne Dateien auszuchecken, sondern nur aus der “anderen Richtung”.

Wie @김민준 erwähnt, überschreibt dies alle nicht festgeschriebenen Änderungen. Denken Sie daran, sie bei Bedarf zuerst irgendwo zu verstauen oder festzuschreiben.

  • Nur eine Warnung, dies wird alle Ihre nicht festgeschriebenen Arbeiten verwerfen. Im Nachhinein offensichtlich, aber hart gebissen :'(

    – 김민준

    16. Mai 17 um 3:12 Uhr


  • Dies ist der einfachste Weg, um eine Zusammenführung aus einem Feature-Branch durchzuführen, von dem Sie nicht alle Details behalten möchten. Der -- . war etwas schwer zu finden, danke!

    – Laurent Caillette

    29. Mai 18 um 6:56 Uhr


  • können Sie erklären, was — . macht eigentlich? “.” ist hier und – ohne Argument bedeutet “alle” ?

    – rot888

    27. August 18 um 14:37 Uhr

  • Soweit ich weiß, verwendet Git -- als Trennzeichen zwischen den Befehlen links und den Dateiglobs rechts.

    – Kache

    27. August 18 um 15:48 Uhr

  • Das hat bei mir nicht genau funktioniert, ich musste Windows verwenden (vielleicht andere Unterschiede?). git checkout <other-branch-name> -- C:pathtochanges*

    – Rythos42

    8. Januar 19 um 18:33 Uhr


Ähnlich wie @Kaches Antwort, aber mit der neueren git restore Befehl (erfordert Git-Version 2.23 oder höher):

git restore --source=<other-branch/tag/commit> <pathspec>
# or
git restore -s <other-branch/tag/commit> <pathspec>

# example: to load all files from branch "other"
git restore -s other .

Dieser neue Befehl wurde eingeführt, um “Zweige auschecken” und “Dateien auschecken” aus der Single herauszutrennen git checkout Befehl. Weiterlesen: Was ist das git restore Befehl.

.

784810cookie-checkgit: Dateien aus einem anderen Zweig in den aktuellen Zweig auschecken (HEAD nicht in den anderen Zweig wechseln)

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

Privacy policy