1267 Stimmen

Wie kann man in Git den lokalen Zweig vollständig durch einen entfernten Zweig ersetzen?

Ich habe zwei Zweige:

  1. die örtliche Zweigstelle (diejenige, mit der ich arbeite)
  2. Remote-Zweig (öffentlich, nur gut getestete Übertragungen gehen dorthin)

Kürzlich habe ich meine örtliche Niederlassung ernsthaft in Schwierigkeiten gebracht.

Wie kann ich den lokalen Zweig vollständig durch den entfernten Zweig ersetzen, so dass ich meine Arbeit dort fortsetzen kann, wo der entfernte Zweig jetzt ist?

Ich habe bereits SO gesucht und das lokale Auschecken in den entfernten Zweig hat keinen Effekt.

1voto

kamal Punkte 21

Git checkout .

Ich verwende immer diesen Befehl, um meine lokalen Änderungen durch Änderungen im Repository zu ersetzen. git checkout space dot.

1voto

Danylo V Punkte 11
  1. git fetch origin remote_branch
  2. git reset --hard FETCH_HEAD

0voto

Eugene Kaurov Punkte 1780

Wie in der gewählten Erklärung angegeben, Git-Reset ist gut. Aber heutzutage verwenden wir oft Untermodule: Repositories innerhalb von Repositories. Wenn Sie zum Beispiel ZF3 und jQuery in Ihrem Projekt verwenden, möchten Sie wahrscheinlich, dass diese aus ihren ursprünglichen Repositories geklont werden. In diesem Fall Git-Reset ist nicht genug. Wir müssen die Untermodule, die in unserem Repository definiert sind, auf genau diese Version aktualisieren:

git checkout master
git fetch origin master
git reset --hard origin/master
git pull

git submodule foreach git submodule update

git status

ist es dasselbe, wie wenn Sie rekursiv in das Arbeitsverzeichnis eines jeden Untermoduls kommen (cd) und es ausführen:

git submodule update

Und es ist ganz anders als

git checkout master
git pull

weil Untermodule nicht auf die Verzweigung, sondern auf die Übergabe verweisen.

In diesen Fällen, wenn Sie einen Zweig für 1 oder mehrere Untermodule manuell auschecken können Sie

git submodule foreach git pull

0voto

Travis Heeter Punkte 11425
git reset --hard
git clean -fd

Das hat bei mir funktioniert - die gelöschten Dateien wurden auch angezeigt. Wenn es Ihnen sagt, dass Sie Änderungen verlieren werden, müssen Sie sie verstecken.

-2voto

Hugo Punkte 2525

Der hässliche, aber einfachere Weg: Löschen Sie Ihren lokalen Ordner, und klonen Sie das entfernte Repository erneut.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X