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 restore
Berührt den Staging-Bereich nicht (es sei denn, Sie werden dazu aufgefordert --staged
).
git show otherbranch:path/to/myfile.txt > path/to/myfile.txt
Verwendet 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 git
ausfü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/to
wenn Sie das Löschen von Dateien vermeiden möchten. Wenn beispielsweise weniger Dateien otherbranch
als im aktuellen Arbeitsverzeichnis vorhanden sind (und diese Dateien nachverfolgt werden ), werden diese ohne --overlay
Option git restore
gelö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".