Ich kenne die Befehle und deren Parameter nicht, kann gut sein, dass ich da was falsches gesagt habe. Aber ich hoffe, es ist trotzdem klar geworden, was ich gemeint habe.
Ja ist es und der Hinweis war auch hilfreich👍 Dennoch wollte ich fragen und darauf hinweisen, da später evtl. auch andere die Beiträge mal lesen. Deswegen noch ein paar Hinweise, auch zu dem ganzen Problem was ich hatte:
Entscheidend waren nicht die Commits, sondern was aktuell im Index liegt. Das sieht man mit git ls-files
. Liegen im Index schon die Dateien, die ich ignorieren möchte, kann Git diese nicht mehr ignorieren. Daher müssen sie aus dem Index gelöscht werden mit
# Löscht alle Dateien aus dem Index
git rm -r --cached .
# Löscht file.js aus dem Index
git rm -r --cached file.js
# Löscht file.js und app.js aus dem Index
git rm -r --cached file.js app.js
Ich habe daher jetzt
git reset --mixed HEAD~1
verwendet, um Commits zu entfernen und den Index auf den gleichen Stand (Snapshot) zu bringen. Aber den ersten und jetzt noch einzigen Commit kann ich nicht löschen.
Würde hier nicht helfen. Denn reset
setzt nur den HEAD Pointer auf den Commit der zuvor gemacht wurde und passt den Index (Staging Area) an diesen Commit an. Im Index würden also weiterhin die Dateien liegen, die ich ignorieren möchte da der Commit zuvor diese Dateien auch schon enthielt.
Quelle: Mosh - Git Tutorial for Beginners
git reset --mixed HEAD~1
wäre nützlich, wenn man vermeiden möchte, dass die Dateien, die man ignorieren möchte in den bereits getätigten Commits gefunden werden können. Weil man z.B. sensible Informationen wie einen API Key darin stehen hatte. Aber das Problem was ich hier hatte, ich konnte den noch einzig übrigen Commit nicht löschen, der die Dateien enthielt.
Gruß ebody