2017-01-14 3 views
1

Ich habe viele Commits gemacht, um mein Repository zu testen. Jetzt möchte ich meine Geschichte ohne Datenverlust beheben. Meine Geschichte sieht wie folgt aus:Wie kann ich den Git-Commit-Verlauf beheben, ohne Daten zu verlieren?

A -> B -> C -> TEST D -> TEST E 

Aber es sollte sein:

A -> B -> C (C + TEST D + TEST E) 

Wie kann ich es tun? Kann rebase oder stash mir helfen?

UPD Ok das ist meine Geschichte zu begehen:

commit 9f2c2e66d344aa27a5e681eb64c84738f2cd1d49 
Author: babobka <[email protected]> 
Date: Sat Jan 14 23:35:36 2017 +0300 

    Fixed files 

commit 9ab55a4e4352daa9e5c27e9243d79a8c14dd6551 
Merge: b52872c 856ee3f 
Author: bbk <[email protected]> 
Date: Sat Jan 14 23:29:16 2017 +0300 

    Merged in develop (pull request #1) 

    New tests. New project structure. FindBugs plugin. 

commit 856ee3fb4725564c1c5c976eacadb6e21aa2b937 
Author: babobka <[email protected]> 
Date: Sat Jan 14 23:24:02 2017 +0300 

    New tests. New project structure. FindBugs plugin. 

commit b52872c300bde67154cec3b732755a47f9ff76cd 
Author: babobka <[email protected]> 
Date: Mon Jan 9 23:36:02 2017 +0300 

    Very big refactor.Can not remember what was done. 

commit 0b330267150db40fb814bfc21387762d80a99e44 
Author: babobka <[email protected]> 
Date: Tue Jan 3 01:13:05 2017 +0300 

    First commit 

ich git rebase -i 9ab55a4e4352daa9e5c27e9243d79a8c14dd6551 -m 'Rebasing' gemacht, aber ich kann keine Änderungen sehen. Immer noch die gleiche Geschichte.

+3

Mögliche Duplikate von [Squash meine letzte X commits zusammen mit Git] (http://StackOverflow.com/Questions/5189560/squash-my-last-x-commits-Together-using-Git) – acm

+0

was ich verstehe ist Willst du die letzten Commits in einen "Squash" verwandeln? Sehen Sie, ob das hilft http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html – sinanspd

+0

Sind Sie Edit Rebase interaktiven Modus config? Änderst du einige der Wörter zum Squash? – oklas

Antwort

1

Sie können mit interaktiven Modus von rebase Befehl

git rebase -i HEAD~2 

Wo HEAD ~ 2 - 2 ist nuber von Commits, die Sie in Betrieb envolve müssen. Interaktiver Modus zeigt kurze Hilfe für Sie. Mark squash (von ersetzen Wort), die commits, die Sie beitreten müssen, um zu sammeln.

Tipp: Zum ersten Mal, es besser zu tun, Zweig zu schaffen und es in getrennten brach tun. In einem separaten Zweig können Sie die Ergebnisse überprüfen, um besser zu verstehen, wie Rebase bearbeitet wird. Und einfach zu Rollback durch den ursprünglichen Zweig der Kasse, wenn einige Probleme oder unerwartetes Verhalten Sie treffen.

Verwandte Themen