Con git rebase --interactive <commit>
können Sie eine beliebige Anzahl von Übertragungen zu einer einzigen zusammenfassen.
Das ist alles großartig, es sei denn, Sie wollen die Commits in den ersten Commit quetschen. Das scheint unmöglich zu sein.
Gibt es Möglichkeiten, dies zu erreichen?
Mäßig verwandt:
In einer verwandten Frage ist es mir gelungen, einen anderen Ansatz für die Notwendigkeit zu finden, die erste Übergabe zu unterdrücken, nämlich, sie zur zweiten zu machen.
Wenn Sie daran interessiert sind: git: Wie fügt man einen Commit als ersten ein und verschiebt alle anderen?
0 Stimmen
Verwandt: Den Root-Commit in Git bearbeiten? .
0 Stimmen
Einzeiler:
git squash 2
mit dem Aliassquash = !"f() { NL=$1; GIT_EDITOR=\"sed -i '2,$NL s/pick/squash/;/# This is the 2nd commit message:/,$ {d}'\"; git rebase -i HEAD~$NL; }; f"
. Siehe stackoverflow.com/a/28789349/670229 .1 Stimmen
Das Skript "squash": Bei zwei Commits existiert der HEAD~2, den dieses Skript erzeugt, nicht, so dass es in diesem einen speziellen Fall nicht funktioniert.