13 Stimmen

git sagt "Die folgenden nicht verfolgten Arbeitsbaumdateien würden beim Auschecken überschrieben werden", wenn man den Zweig wechselt

Ich habe einen Zweig namens develop im entfernten Bare-Repo hub und ich habe ein Exemplar des develop Zweig in meinem lokalen Git-Repository (Benutzer poomalai ).

Ich habe gelöscht ( git rm --cached ) eine Datei ( Mydirectory/myfile.php ) von einer anderen Kopie der Kasse (Benutzer raj ), und in das Hub-Repository übertragen.

Wenn ich nun die Änderungen vom Hub auf (Benutzer poomalai ), funktioniert es gut, und ich habe die Commit-Meldung file deletion im Git-Protokoll.

Ich habe die Datei in der .gitignore Datei in der (Benutzer poomalai ).
Jetzt habe ich die Datei in meinem lokalen Repository erstellt (Benutzer poomalai ).

Jetzt ist die Datei nicht mehr in der Versionskontrolle, und Änderungen an der Datei werden von Git nicht verfolgt.

Aber wenn ich versuche, zu einer anderen Verzweigung zu wechseln, wird Folgendes angezeigt:

Fehler: Die folgenden nicht nachverfolgten Arbeitsbaumdateien würden beim Auschecken überschrieben werden:
Mydirectory/myfile.php
Bitte verschieben oder entfernen Sie sie, bevor Sie die Zweige wechseln können.
Abbrechen

Wenn ich die Datei unter Linux entferne rm kann ich den Zweig wechseln.
Wenn ich die Datei erneut erstelle, wird wieder derselbe Fehler ausgegeben.
Ich brauche die Datei im Verzeichnis, aber sie sollte nicht von Git verfolgt werden.

Ich habe folgende Befehle ausprobiert:

git rm  

fatal: pathspec 'diamonds_webservice/dbconnect.php' passte zu keiner Datei

git gc
git reset --hard HEAD
git pull

Nichts funktioniert. Bitte hilft mir jemand

9voto

Krishna Shasankar Punkte 144

Dies könnte möglich sein, weil die Datei dem Projektarchiv im "Zielzweig" hinzugefügt wird.
Stellen Sie sicher, dass die Datei git rm vom "Zielzweig" und versuchen Sie dann, den Zweig zu wechseln.

Comme @CharlesB Git macht das, um die Datenintegrität zu gewährleisten, damit beim Wechseln des Verzeichnisses nichts verloren geht.

5voto

CharlesB Punkte 80104

Es ist gut, dass Git Sie davor warnt, denn wenn Sie zu einem Zweig wechseln, in dem die Datei noch nicht gelöscht ist, wird sie... gelöscht.
Sie machen es also richtig: Entfernen Sie es (oder benennen Sie es um), bevor Sie einen Zweig auschecken, in dem es gelöscht ist.

Git kümmert sich also um Ihre Daten, bevor es sie überschreibt.
Da sie nicht versioniert ist, können Sie sie nach dem Auschecken nicht mehr wiederherstellen.

0voto

Yuli Hua Punkte 491

Das einzige, was bei mir funktioniert hat:

im Android-Studio - Gehen Sie zum Ereignisprotokoll - Klicken Sie auf den Hyperlink "Anzeigen". - drücken Sie dann manuell die Minusleiste, um die Dateien im Popup-Fenster zu löschen.

(da es nur 4-5 Dateien waren, habe ich die Dateien zuerst umbenannt) Ich musste es zweimal machen, da einige Objekte beim ersten Versuch nicht gelöscht wurden...

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