2016-07-08 8 views
0

Gibt es einen Unterschied zwischen:Löschen von Dateien in git

git rm name.txt 
git commit -m "message" 

und

#delete the file name.txt normally with the file manager (right-click and delete) and erasign the trash 
git add . 
git commit -m "message" 

Antwort

2

Wenn die einzige Änderung, die Sie an diesem Ordner vornehmen, ist das Entfernen dieser Datei, dann nein, es gibt keinen Unterschied im Endergebnis. Beide entfernen diese Datei aus dem Index und das Arbeitsverzeichnis. (git wird es in der git rm Fall für Sie tun, während Sie es sich in der zweiten getan haben.)

jedoch, wenn Sie irgendwelche andere Änderungen im Arbeitsverzeichnis vorgenommen haben, dann werden diese Änderungen auch inszeniert werden. Dies umfasst auch das Staging von Dateien, die zuvor nicht geparkt wurden. Dies kann ziemlich ärgerlich sein, da Sie versehentlich Build-Ausgaben einfügen können, oder vielleicht erstellt Ihr Editor neben den Dateien, die er bearbeitet, auch Swap-Dateien.

Aus diesem Grund empfehle ich die explizite git rm filename über rm filename && git add ..

3

git rm Verwendung wird die Datei aus dem Repository Index entfernen und wird automatisch mit Ihrem nächsten Commit enthalten sein. Wenn Sie die Datei manuell löschen, müssen Sie die gelöschte Datei noch hinzufügen, damit Git versteht, dass sie gelöscht wurde. Der Befehl rm tut es einfach in einem Schritt.

+0

Wenn ich 'git rm name.txt' starte, verschwindet die Datei aus dem Arbeitsverzeichnis. Warum? Bedeutet das nicht, dass der Befehl die Datei aus dem Dateisystem entfernt? – iUser

+0

Das sollte nicht der Fall sein. Siehe die Dokumentation [hier] (https://git-scm.com/docs/git-rm). Es entfernt es aus dem Repo, das auf den Server geschoben wird, entfernt es aber tatsächlich auf Ihrem Computer. – Confiqure

+2

@Confiqure Plain 'git rm file' _will_ entfernt die Datei aus dem Arbeitsverzeichnis. Um es nur aus dem Index zu entfernen, benutze 'git rm --cached file' anstatt ... – twalberg