Unter den in der Frage genannten Bedingungen:
- Der Commit ist der erste Commit im Repository.
- Das heißt, es wurden nur sehr wenige Befehle ausgeführt:
- a
git init
,
- vermutlich einige
git add
Operationen,
- und eine
git commit
,
- und das ist alles!
Wenn diese Voraussetzungen erfüllt sind, wäre der einfachste Weg, die ursprüngliche Übergabe rückgängig zu machen, folgender:
rm -fr .git
aus dem Verzeichnis, in dem Sie die git init
. Sie können dann erneut die git init
um das Git-Repository neu zu erstellen, und wiederholen Sie die Ergänzungen mit allen sinnvollen Änderungen, die Sie beim ersten Mal bedauert haben, nicht vorgenommen zu haben, und wiederholen Sie die erste Übergabe.
GEFAHR! Dadurch wird das Verzeichnis des Git-Repositorys entfernt.
Das Verzeichnis des Git-Repositorys wird dauerhaft und unwiederbringlich gelöscht, es sei denn, Sie haben irgendwo Sicherungskopien davon. Unter den gegebenen Voraussetzungen haben Sie nichts, was Sie im Repository behalten wollen, also verlieren Sie auch nichts. Alle von Ihnen hinzugefügten Dateien sind in den Arbeitsverzeichnissen weiterhin verfügbar, vorausgesetzt, Sie haben sie noch nicht geändert und nicht gelöscht usw. Diese Vorgehensweise ist jedoch nur dann sicher, wenn sich nichts anderes in Ihrem Projektarchiv befindet. Unter den Umständen, die in der Frage "Projektarchiv zum ersten Mal übertragen - und dann bereuen" beschrieben sind, ist es sicher. Sehr oft ist es jedoch nicht sicher.
Es ist auch sicher, dies zu tun, um ein unerwünschtes geklontes Repository zu entfernen; es fügt dem Repository, von dem es geklont wurde, keinen Schaden zu. Es wirft alles weg, was Sie in Ihrer Kopie gemacht haben, hat aber ansonsten keine Auswirkungen auf das ursprüngliche Projektarchiv.
Seien Sie vorsichtig, aber es ist sicher und wirksam, wenn die Voraussetzungen erfüllt sind.
Wenn Sie andere Dinge mit Ihrem Repository gemacht haben, die Sie erhalten wollen, dann ist dies nicht die geeignete Technik - Ihr Repository erfüllt nicht mehr die Voraussetzungen dafür, dass dies angemessen ist.