Wie drückst du dein gesamtes Repository auf den ersten Commit zusammen?
Ich kann zum ersten Commit neu basieren, aber dann hätte ich 2 Commits. Gibt es eine Möglichkeit, auf den Commit vor dem ersten zu verweisen?
Wie drückst du dein gesamtes Repository auf den ersten Commit zusammen?
Ich kann zum ersten Commit neu basieren, aber dann hätte ich 2 Commits. Gibt es eine Möglichkeit, auf den Commit vor dem ersten zu verweisen?
Diese Antwort verbessert ein paar der obigen (bitte wählen Sie sie hoch), unter der Annahme, dass Sie neben der Erstellung des einen Commits (keine Eltern keine Geschichte), auch alle Commit-Daten dieses Commits beibehalten möchten:
Natürlich wird sich die Commit-SHA des neuen/einzigen Commits ändern, da es eine neue (nicht-)Geschichte darstellt und ein elternloser/Wurzel-Commit wird.
Dies kann erreicht werden, indem man `git log` liest und einige Variablen für `git commit-tree` setzt. Unter der Annahme, dass Sie einen einzelnen Commit von `master` in einem neuen Branch `one-commit` erstellen möchten, die obigen Commit-Daten beibehaltend:
git checkout -b one-commit master ## neuen Branch erstellen, um zurückzusetzen
git reset --hard \
$(eval "$(git log master -n1 --format='\
COMMIT_MESSAGE="%B" \
GIT_AUTHOR_NAME="%an" \
GIT_AUTHOR_EMAIL="%ae" \
GIT_AUTHOR_DATE="%ad" \
GIT_COMMITTER_NAME="%cn" \
GIT_COMMITTER_EMAIL="%ce" \
GIT_COMMITTER_DATE="%cd"')" 'git commit-tree master^{tree} <
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
43 Stimmen
@innaM - Es ist der ursprüngliche Commit, der den Git hervorgebracht hat. (Hofft, dass der Humor gut genug durch das Internet übertragen wird).
14 Stimmen
Für diejenigen, die später zu dieser Frage kommen, achten Sie darauf, die modernere Antwort zu verwenden.
1 Stimmen
Verwandt, aber kein Duplikat (
--root
ist tatsächlich nicht die beste Lösung zum Zusammenfassen aller Commits, wenn es viele davon gibt, die zusammengefasst werden müssen): Kombinieren der ersten beiden Commits eines Git-Repositorys?.1 Stimmen
^ diese moderne Antwort ist nicht die beste, bessere Lösung ohne Overhead ist stackoverflow.com/questions/1657017#23486788
2 Stimmen
Imo: das ist das Beste von @MrTux: stackoverflow.com/questions/30236694/….
0 Stimmen
Möglicher Duplikat von Die ersten beiden Commits eines Git-Repository zusammenführen?
1 Stimmen
Ich weiß, die Frage verlangt eine schnelle Lösung, aber man könnte auch: ´rm -rf .git´ und ´git commit -m"neue Nachricht"´.