Ich würde verwenden git restore(verfügbar seit Git 2.23)
git restore --source otherbranch path/to/myfile.txt
Warum ist es besser als andere Optionen?
git checkout otherbranch -- path/to/myfile.txt- Es kopiert die Datei in das Arbeitsverzeichnis, aber auch in den Staging-Bereich (ähnlicher Effekt, als würden Sie diese Datei manuell kopieren und darauf ausführen git add). git restoreBerührt den Staging-Bereich nicht (es sei denn, Sie werden dazu aufgefordert --staged).
git show otherbranch:path/to/myfile.txt > path/to/myfile.txtVerwendet die Standard-Shell-Umleitung. Wenn Sie Powershell verwenden, liegt möglicherweise ein Problem mit der Textbindung vor, oder Sie können eine fehlerhafte Datei erhalten, wenn diese binär ist . Beim git restoreÄndern von Dateien erfolgt alles per gitausführbarer Datei.
Ein weiterer Vorteil ist, dass Sie den gesamten Ordner wiederherstellen können mit:
git restore --source otherbranch path/to
oder mit, git restore --overlay --source otherbranch path/towenn Sie das Löschen von Dateien vermeiden möchten. Wenn beispielsweise weniger Dateien otherbranchals im aktuellen Arbeitsverzeichnis vorhanden sind (und diese Dateien nachverfolgt werden ), werden diese ohne --overlayOption git restoregelöscht. Aber dies ist ein gutes Standardverhalten. Sie möchten höchstwahrscheinlich, dass der Status des Verzeichnisses der gleiche ist wie in otherbranch, nicht "der gleiche, aber mit zusätzlichen Dateien in meinem aktuellen Zweig".