737 Stimmen

Die folgenden nicht verfolgten Arbeitsbaumdateien würden durch die Zusammenführung überschrieben werden, aber das ist mir egal

In meinem Zweig hatte ich einige Dateien in .gitignore

In einem anderen Zweig sind diese Dateien nicht vorhanden.

Ich möchte den anderen Zweig mit meinem zusammenführen, und es ist mir egal, ob diese Dateien nicht mehr ignoriert werden oder nicht.

Leider bekomme ich das:

Die folgenden nicht verfolgten Arbeitsbaumdateien würden durch die Zusammenführung überschrieben werden

Wie kann ich meinen Pull-Befehl so ändern, dass er diese Dateien überschreibt, ohne dass ich diese Dateien selbst suchen, verschieben oder löschen muss?

1016voto

userFog Punkte 9171

Das Problem besteht darin, dass Sie die Dateien nicht lokal verfolgen, sondern identische Dateien aus der Ferne verfolgt werden, so dass Ihr System beim "Pull" gezwungen wäre, die lokalen Dateien zu überschreiben, die nicht versionskontrolliert sind.

Versuchen Sie zu laufen

git add * 
git stash
git pull

Dadurch werden alle Dateien verfolgt, alle lokalen Änderungen an diesen Dateien entfernt und dann die Dateien vom Server geholt.

323voto

sKhan Punkte 8592

Sie können versuchen, die nicht verfolgten Dateien aus dem lokalen

Git 2.11 und neuere Versionen:

git clean  -d  -f .

Ältere Versionen von Git:

git clean  -d  -f ""

Wo -d kann durch die folgende ersetzt werden:

  • -x Ignorierte Dateien werden ebenso entfernt wie Dateien, die Git unbekannt sind.

  • -d zusätzlich zu den nicht verfolgten Dateien auch nicht verfolgte Verzeichnisse entfernen.

  • -f ist erforderlich, um die Ausführung zu erzwingen.

Hier ist die lien die ebenfalls hilfreich sein können.

266voto

Asaf Manassen Punkte 3545

Die einzigen Befehle, die bei mir funktionierten, waren: (Vorsicht, dabei werden alle lokalen Dateien gelöscht)

git fetch --all
git reset --hard origin/{{your branch name}}

103voto

Esteis Punkte 3991

Sicheres Entfernen/Überschreiben nur störender Dateien

Wenn Sie merge :

git checkout -f donor-branch   # replace bothersome files with tracked versions
git checkout receiving-branch  # tracked bothersome files disappear
git merge donor-branch         # merge works

Wenn Sie pull :

git fetch
git checkout -f origin/mybranch   # replace bothersome files with tracked versions
git checkout mybranch             # tracked bothersome files disappear
git pull origin/mybranch          # pull works

Das ist alles, was Sie wissen müssen, um es zu benutzen. Im Folgenden finden Sie eine Erklärung.


Ausführliche Erklärung

Die lästigen Dateien, die wir entfernen werden:

  • in der Spenderbranche existieren (für git pull : der Upstream-Zweig),
  • in der empfangenden Zweigstelle nicht vorhanden sind,
  • und blockieren die Zusammenführung, weil sie in Ihrem Arbeitsverzeichnis vorhanden sind und nicht verfolgt werden.

git merge -f y git pull -f nicht existieren, sondern git checkout -f tut.

Wir werden die git checkout -f + git checkout um die störenden Dateien aufzuspüren und zu entfernen, und dann kann Ihre Zusammenführung normal fortgesetzt werden.

Schritt 1. Dieser Schritt ersetzt zwangsweise nicht verfolgte störende Dateien durch verfolgte Versionen des Spenderzweigs (er checkt auch den Spenderzweig aus und aktualisiert den Rest des Arbeitsverzeichnisses).

git checkout -f donor-branch

Schritt 2. Dieser Schritt entfernt die störenden Dateien, da sie in unserem aktuellen (Spender-)Zweig verfolgt werden und in der receiving-branch wechseln wir zu.

git checkout receiving-branch

Schritt 3. Da die störenden Dateien nun nicht mehr vorhanden sind, werden beim Zusammenführen im Spenderzweig keine nicht verfolgten Dateien überschrieben, so dass keine Fehler auftreten.

git merge donor-branch

32voto

Abhishek Goel Punkte 16695

Entfernen Sie alle nicht verfolgten Dateien:

git clean  -d  -fx .

Achtung: Dies löscht IDE-Dateien und alle nützlichen Dateien, solange Sie die Dateien nicht verfolgen. Verwenden Sie diesen Befehl mit Bedacht

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