Revert merge Git-Flow -
i'm using sourcetree , git-flow pattern. have prepared release beta-testers test created new release/v1.0.1 branch. mind slipped , decided finish (merge develop , master , tag) release though haven't sent out release testers. have release branch open again if testers finds bugs can fix these bugs in release branch , when bugs fixed can finish release.
so how can sourcetree preferably (or using git commands) revert state when had release/v1.0.1 branch?
attached screendump sourcetree:

edit: okay did git reset --hard head~2 on develop (head~2) because had tested manually checking out. when checkout master , git reflog seems me should reset on head~6
peters-macbook-pro:remessage peterwarbo$ git reflog f7663b1 head@{0}: checkout: moving develop master 3d132da head@{1}: reset: moving head~2 2f1c753 head@{2}: checkout: moving master develop f7663b1 head@{3}: checkout: moving develop master 2f1c753 head@{4}: merge release/v1.0.1: merge made 'recursive' strategy. 4332fe4 head@{5}: checkout: moving master develop f7663b1 head@{6}: merge release/v1.0.1: merge made 'recursive' strategy. fe323ef head@{7}: checkout: moving release/v1.0.1 master 28a63ea head@{8}: commit: bumped version number 1.0.1 but when "error":
peters-macbook-pro:project peterwarbo$ git reset --hard head~6 fatal: ambiguous argument 'head~6': unknown revision or path not in working tree. edit 2: new image illustrate fuckup.

edit 3: attached new image illustrate current state after issuing git commands in user1615903´s answer. why develop 2 behind? , why there merge release/v1.0.1 master though did reset master initial commit (fe323ef)?

this quite easy. things need are:
reset develop branch commit before merge
reset master branch commit before merge
have release branch point correct commit again
remove tag
push fixed commits remote
so steps 1 , 2:
git checkout develop git reset --hard 4332fe4 git checkout master git reset --hard <sha of commit master before merge> then "recreate" release branch:
git checkout -b "release/v1.0.1" 28a63ea and remove tag:
git tag -d v1.0.1 more information undoing merge in this stackoverflow question
after that, if changes pushed, need use -f switch override changes in remote:
git push -f and delete tag remote:
git push --delete origin v1.0.1
Comments
Post a Comment