Überschreiben der lokalen Datei mit dem ursprünglichen Repo erzwingen?

224

Ich möchte die neueste Datei im Repository abrufen und das, was ich lokal habe, überschreiben. Wie kann ich das mit dem Git-Client machen?

Blankman
quelle

Antworten:

443

Wenn Sie nur eine Datei überschreiben möchten:

git fetch
git checkout origin/master <filepath>

Wenn Sie alle geänderten Dateien überschreiben möchten :

git fetch
git reset --hard origin/master

(Dies setzt voraus, dass Sie masterlokal arbeiten und die Änderungen am Ursprung vornehmen möchten. masterWenn Sie sich in einem Zweig befinden, ersetzen Sie diesen stattdessen durch.)

Bernstein
quelle
Dies tat das Gegenteil. Das Repository wurde fälschlicherweise mit meinen lokalen Dateien überschrieben.
C_Rod
git fetch git reset --hard origin/masteroder/<branch name>
Adrian Filipescu
Das ist großartig ... Genau das, wonach ich gesucht habe. Danke
Thiago Passos
Ich bin nicht sicher, was @C_Rod getan hat, aber dies kann unmöglich das Repository beeinflussen
Brad Mace
26

Einfachste Version, vorausgesetzt, Sie arbeiten an demselben Zweig, in dem sich die gewünschte Datei befindet:

git checkout path/to/file.

Ich mache das so oft, dass ich einen Alias ​​gesetzt habe gc='git checkout'.

JM Janzen
quelle
4
Einfach, elegant und macht den Job. Denken Sie daran, vorher 'git fetch' zu machen.
Almir Campos
6
git checkout path/to/filearbeitete für mich. Außerdem fand ich dieses Diagramm sehr nützlich, um konzeptionell zu verstehen, was git checkouttut. Link
Cale Sweeney
9

Das hat bei mir funktioniert:

git reset HEAD <filename>
arn-arn
quelle
Ich habe einige verschiedene Lösungen gesehen, aber diese ist die effektivste, danke
Calvin Zhou
3

Die vollständige Synchronisierung hat nur wenige Aufgaben:

  • Änderungen rückgängig machen
  • neue Dateien entfernen
  • Holen Sie sich die neuesten Informationen aus dem Remote-Repository

Git Reset HEAD --hard

git clean -f

Git Pull Origin Master

Oder ich bevorzuge, dass ich einen neuen Zweig mit dem neuesten von der Fernbedienung aus erstellen kann, indem ich:

git checkout origin/master -b <new branch name>

origin ist meine Remote-Repository-Referenz und master ist mein betrachteter Filialname. Diese können sich von Ihren unterscheiden.

Chand Priyankara
quelle