Wie kann ich einen leeren Ordner lokal entfernen und dies auch für andere Mitarbeiter tun, die die Fernbedienung per Pull-Push freigeben? Ich weiß, dass Ordner in diesem Sinne nicht von Git "verfolgt" werden, aber die Frage bleibt.
Beispiel: Ich habe eine Datei in einen anderen Ordner verschoben und die Änderung (des Umzugs) festgeschrieben.
Aber ich kann git rm name
den Ordner nicht, da ich bekomme, dass "nicht übereinstimmt"
git rmdir name
nicht existiert.
Ich kann ein machen, git clean -f folder
aber wie wird das hochgeschoben?
Ich kann rm
die Datei direkt bearbeiten, aber wie kann ich das Entfernen des Verzeichnisses korrekt durchführen und es in das Repository und dann an andere weiterleiten, wenn sie es ziehen, damit ihr vorhandener Ordner gelöscht wird?
Antworten:
Die kurze Antwort: Sie können keine Änderungen an Verzeichnissen (hinzugefügt, entfernt usw.) vornehmen, da Git Verzeichnisse nicht selbst verfolgt .
Laut FAQ :
Für Git existiert Ihr leeres Verzeichnis nicht mehr.
Ich habe festgestellt, dass die Gewohnheit,
git clean -fd
Verzeichnisse zu verwenden, das Entfernen von Verzeichnissen überflüssig macht. Siegit clean
können jedoch Elemente entfernen, die möglicherweise nicht entfernt werden sollen (einschließlich neuer Dateien, die Sie noch nicht festgeschrieben haben). Daher verwende ich in der Regel zuerst, umgit clean -fdn
zu sehen, was entfernt wird , wenn ich den Befehl verwende.Es sieht so aus, als ob Sie gezwungen sein könnten, mit Ihren Entwicklerkollegen zu sprechen, um dieses Verzeichnis zu bereinigen.
quelle
git svn fetch
verwaltet leere Ordner. Auchgit svn rebase
leere Ordner neu erstellen , wenn nur eine entfernen.quelle
Sie können keine leeren Ordner verschieben. Wenn Sie jedoch leere Ordner in Ihrem geklonten / lokalen Repo bereinigen möchten, übernehmen Sie Ihre letzten Änderungen. Löschen Sie dann einfach alle Dateien außer dem .git-Ordner in Ihrer lokalen Kopie. Setzen Sie dann alle Änderungen erneut zurück, wodurch alle Dateien zurückgesetzt werden, aber die leeren Verzeichnisse, die nicht verfolgt werden, weggelassen werden.
quelle
git clean -fd
Ein etwas hackiger Weg, dies zu umgehen, besteht darin, eine gefälschte Datei im Verzeichnis zu erstellen, sie festzuschreiben und dann zu entfernen. Durch Entfernen wird auch das Verzeichnis entfernt. Erstellen Sie also name / fake.txt
quelle
rm -rf name
und dann die Änderung