Ein Weg, um es manuell zu tun (ohne Rosinenpickerei)
eine Niederlassung machen aus dem Kopf Ihrer Niederlassung wo die Commits sind git branch newB
hard reset dieser neue Zweig zum letzten commit git reset --hard <shaID of Commit19>
Methode 1
eine gemischte Rücksetz tun, um die direkt zu begehen, bevor die erste git reset --mixed <shaId of the mentioned commit>
commit
auf dieser ‚modifizierten‘ -Code einen Vorrat zu tun haben, nur die 1 Festschreibungen bis 19 git stash
Gehe zu, wo du dieses Handbuch anwenden möchtest, und nimm einen Pop git checkout <dstBranch>
& git stash pop
Methode 2 (dieses Verfahren wird das halte msgs commit)
tun, um eine Zurücksetzung des rechten commit, bevor der ersten git reset --hard <shaId of the mentioned commit>
commit tun, um eine zerquetschte merge mit dem reflogs vorherigem Zustand git merge --squash [email protected]{1}
Jetzt werden Sie sehen, dass die Commits 1 - 19 indiziert werden und wenn Sie einen Commit durchführen, wird die Commit-Nachricht mit allen einzelnen Commits-Nachrichten gefüllt ... so dass Sie die Nachricht wie gewünscht ändern können
Jetzt, wo Sie Ihre Commit haben, wählen Sie diese Commit, wo Sie es wollen. Es hat den Vorteil, alle gewünschten Commit-Nachrichten zu haben.
wenn Sie fertig sind die temp Zweig zu löschen, um loszuwerden, alle Junk, die Sie getan haben Ihre internen zu tun git branch -D newB
auf jeden Fall den richtigen Weg wählen, dies zu tun :) – g19fanatic
Könnten Sie tun 'git cherry-pick HEAD..branch-name'? – Uri