ich von „unbekannt“ in meinem Repository versehentlich Commits erstellt und beschlossen, von here läuft einen Befehl, um zu versuchen:Git - Duplizieren Ausgabe begehen
git filter-branch --commit-filter '
if [ "$GIT_COMMITTER_NAME" = "unknown" ];
then
GIT_COMMITTER_NAME="..";
GIT_AUTHOR_NAME="..";
GIT_COMMITTER_EMAIL="...";
GIT_AUTHOR_EMAIL="...";
git commit-tree "[email protected]";
else
git commit-tree "[email protected]";
fi' HEAD
ich Anfangs dachte alles war in Ordnung, bis ich in gitk bemerkt dass jedes Commit vor dem Ausführen dupliziert wurde, nicht einfach bearbeitet wurde, wie ich ursprünglich dachte.
Ist es möglich, dies zu bereinigen?
EDIT: OK, gitk zeigt sowohl die alten Commits (die mit dem „unbekannt“ Committer gemischt) und die neuen Commits (die neu geschrieben ist), an einem bestimmten Punkt auf halbem Weg aufgeteilt. Denken Sie eine Reihe von Commits, dann dupliziert (und mit den Änderungen), und gestapelt auf die ursprünglichen. Was ich tun möchte ist, wenn möglich, die ursprünglichen zu entfernen.
Mal sehen, ob ich das bekomme: hast du einen Commit-Baum, der wie folgt aussieht: ... - a - b - c - (*) - a '- b' - c '--d - e', wobei '(*)' das Commit ist, auf dem du den bad Befehl ausgeführt hast, '[abc]'' fälschlicherweise duplizierte Commits, die du löschen willst, und '[de]' werden dir übergeben behalten wollen? –
Nun, es ist komplizierter wegen der Verzweigung, aber im Grunde wie du gesagt hast, aber ich möchte die '' 'einbehalten, da sie die Autorenfelder haben. – unrelativity
Okay, also möchtest du [abc] löschen, aber [abc] 'behalten? –