Unter den in der Frage festgelegten Bedingungen:
- Das Commit ist das erste Commit im Repository.
- Das heißt, es wurden nur sehr wenige Befehle ausgeführt:
- a
git init
,
- vermutlich einige
git add
Operationen,
- und a
git commit
,
- und das ist alles!
Wenn diese Voraussetzungen erfüllt sind, ist der einfachste Weg, das anfängliche Commit rückgängig zu machen, folgende:
rm -fr .git
aus dem Verzeichnis, in dem Sie getan haben git init
. Sie können dann das wiederholen git init
, um das Git-Repository neu zu erstellen, und die Ergänzungen mit allen Änderungen wiederholen, die sinnvoll sind, die Sie beim ersten Mal nicht vorgenommen haben, und das anfängliche Festschreiben wiederholen.
ACHTUNG! Dadurch wird das Git-Repository-Verzeichnis entfernt.
Das Git-Repository-Verzeichnis wird dauerhaft und unwiederbringlich entfernt, es sei denn, Sie haben irgendwo Backups. Unter den Voraussetzungen haben Sie nichts, was Sie im Repository behalten möchten, damit Sie nichts verlieren. Alle von Ihnen hinzugefügten Dateien sind weiterhin in den Arbeitsverzeichnissen verfügbar, vorausgesetzt, Sie haben sie noch nicht geändert und nicht gelöscht usw. Dies ist jedoch nur dann sicher, wenn Sie überhaupt nichts anderes in Ihrem Repository haben. Unter den in der Frage "Erstes Repository festschreiben - dann bereuen" beschriebenen Umständen ist es sicher. Sehr oft ist es jedoch nicht sicher.
Dies ist auch sicher, um ein unerwünschtes geklontes Repository zu entfernen. Das Repository, aus dem es geklont wurde, wird nicht beschädigt. Es wirft alles weg, was Sie in Ihrer Kopie getan haben, wirkt sich aber ansonsten nicht auf das ursprüngliche Repository aus.
Seien Sie vorsichtig, aber es ist sicher und effektiv, wenn die Voraussetzungen erfüllt sind.
Wenn Sie mit Ihrem Repository andere Dinge getan haben, die beibehalten werden sollen, ist dies nicht die geeignete Technik - Ihr Repository erfüllt nicht mehr die Voraussetzungen dafür.
git status
und zu meiner Überraschung sagte gitfatal: Not a git repository (or any parent up to mount point ...)
!