GitFlowでmasterブランチにマージしたあとのrevert作業メモ

想定ケース

  • GitFlowによるdevelop/masterブランチ運用。
  • develop, master ブランチは保護ブランチ。基本的にはGitHub上でのPRベースでマージを行う。

feature ブランチで作業

例として newfile.txt というテストファイルを追加する作業を行う

$ git checkout -b feature origin/develop
$ touch newfile.txt
$ git add newfile.txt
$ git commit -m 'Add newfile'
$ git push origin feature

feature -> develop へマージ

GitHub で developブランチへ向けてPR作成、マージ f:id:tic40:20190408092026p:plain

develop -> master へマージ

f:id:tic40:20190408092230p:plain

master コミットログ。featureブランチで作業したAdd newfile コミットが入っていることを確認 f:id:tic40:20190408092349p:plain

masterブランチでRevertを行う

f:id:tic40:20190408155456p:plain

revertした masterブランチから develop へのマージを行う

f:id:tic40:20190408223141p:plain

ここから再度revertした作業を戻して master にマージする場合

この時点では develop -> master に差分はない f:id:tic40:20190408224024p:plain

revert した内容を revert することで取り消したrevert 内容を developブランチに戻す

$ git checkout develop
$ git log
commit 68ce661756642e444a68d04a32d4cc760bb03510 (HEAD -> develop, origin/develop)
Merge: d666db9 9609193
Author: tic40
Date:   Mon Apr 8 22:30:46 2019 +0900

    Merge pull request #18 from tic40/master

    Merge pull request #17 from tic40/develop

commit 960919320a75a2399e5ea34ebee1305c846e255b (origin/master, origin/HEAD, master)
Merge: 9d2b6c5 5631086
Author: tic40
Date:   Mon Apr 8 22:29:03 2019 +0900

    Merge pull request #19 from tic40/revert-17-develop

    Revert "Release"

$ git revert 9609193 -m 1
[develop 7567e16] Revert "Merge pull request #19 from tic40/revert-17-develop"
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 newfile.txt
$ git push origin develop

これで revert で打ち消した差分を develop に復活、master に再度マージが可能になる f:id:tic40:20190408224229p:plain