我想要执行「git revert」的「git revert」!
git revert是一個用於撤消提交的命令。
如标题所述,这是一个备忘录,提醒我在需要撤销撤销时不要慌张,因为这种情况可能再次发生。
为什么需要这样做?
-
- 发布拉取请求后,该请求被合并到topic分支后,又被发现有问题,于是进行了还原。
-
- 在与审查者的讨论后,得出了认为还原后的实现是正确的结论。
- 被告知“抱歉,重新用原始实现提交拉取请求吧”,于是试图再次从原始分支提交拉取请求,但是…

我以为有变动!但仔细想想,被判断已经包括了像下图一样的内容是很正常的。

由于commitID为abc123的工作已经合并到topic分支中,所以有人问过我:“你已经导入了吗?”
既然事情如此,只能撤销撤销了……。
实际步骤
从主题分支pull并创建了一个新的分支,然后回滚了回滚提交。
> git pull // 1.revertされた状態のtopicブランチに合わせる
> git checkout -b revert-revert // 2.新しいブランチを作成する
> git log // 3.revertのコミットIDを特定する
commit 456def.......... (origin/revert) // revertのコミットID
Author: レビュア
Date: Thu Oct 14 05:16:11 2021 +0000
Revert "イケてる実装 (pull request #001)"
commit 123abc..........
Author: shun.kondo
Date: Thu Oct 14 05:14:41 2021 +0000
イケてる実装
> git revert 456def // 4.revertのコミットIDを指定してrevert(取り消しの取り消し)
[<作業ブランチ名> <新しいコミットID>] Revert "Revert "イケてる実装 (pull request #001)""
1 file changed, 1 deletion(-)
> git push --set-upstream origin revert-revert // 5.再度push!
我成功地取消了取消操作,并按照原始实现的方式进行了合并。
我也大概查了一下是否还有其他方法。
似乎也有一种使用”git reset”命令,带上”-f”选项来强制推送并清除提交日志的方法。
尽管”还原”和”还原的还原”这样的提交日志排列在一起看起来并不太好看,但是Git的重置功能会将提交彻底删除,这也带来了一些缺点,比如容易产生冲突。
无论如何,我认为保留操作步骤不变并不是一件坏事,所以在团队开发中最好使用git revert。