git merge - Git reset (not hard) then fast forward merging of certain commit -


the case: branch commit1 -> commit2 -> commit3 -> commit4

the head in commit4.

i reset (not hard) commit1 , use commit1 base implement whatever changes done in commit4.

so end result is: commit1 -> commit4

is there git command that? or should rollback commit1 , implement changes done in commit4 manually?

thanks!

it is clear me, based on question, want commit sequence read:

... <- c1 <- new-c4   <-- branch 

(remember, arrows point towards past history, not forward future).

it's not clear me whether want new commit (which call new-c4 above) keep source way in old c4, or whether want discard changes made in c2 , c3 while keeping changes made in c4.

you can achieve latter result using git rebase, keep in mind usual caveat should never rebase published commit. make happen, run:

git rebase -i head~4 

this bring editor session can keep or discard specific commits. see answer linked in martin konecny's comment, or barry gackle's answer.

if want keep changes introduced c2 , c3 while discarding commits themselves, git reset --soft followed git commit correct method. see vonc's answer here.


Comments

Popular posts from this blog

android - MPAndroidChart - How to add Annotations or images to the chart -

javascript - Add class to another page attribute using URL id - Jquery -

firefox - Where is 'webgl.osmesalib' parameter? -