In allen vorhandenen Antworten geht es darum, die unerwünschten Dateien aus dem letzten Commit zu entfernen .
Wenn Sie unerwünschte Dateien aus einem alten Commit entfernen möchten (auch gepusht) und kein neues Commit erstellen möchten, was aufgrund der folgenden Aktion nicht erforderlich ist:
1.
Suchen Sie das Commit, dem die Datei entsprechen soll.
git checkout <commit_id> <path_to_file>
Sie können dies mehrmals tun, wenn Sie viele Dateien entfernen möchten.
2.
git commit -am "remove unwanted files"
3.
Suchen Sie die commit_id des Commits, zu dem die Dateien versehentlich hinzugefügt wurden. Sagen wir hier "35c23c2"
git rebase 35c23c2~1 -i // notice: "~1" is necessary
Dieser Befehl öffnet den Editor gemäß Ihren Einstellungen. Die Standardeinstellung ist vim.
Verschieben Sie das letzte Commit, das "unerwünschte Dateien entfernen" sein sollte, in die nächste Zeile des falschen Commits (in unserem Fall "35c23c2") und setzen Sie den Befehl wie folgt fixup
:
pick 35c23c2 the first commit
fixup 0d78b28 remove unwanted files
Sie sollten nach dem Speichern der Datei gut sein.
Beenden :
git push -f
Wenn Sie leider Konflikte bekommen, müssen Sie diese manuell lösen.