我想要执行「git revert」的「git revert」!

git revert是一個用於撤消提交的命令。

如标题所述,这是一个备忘录,提醒我在需要撤销撤销时不要慌张,因为这种情况可能再次发生。

为什么需要这样做?

    1. 发布拉取请求后,该请求被合并到topic分支后,又被发现有问题,于是进行了还原。

 

    1. 在与审查者的讨论后,得出了认为还原后的实现是正确的结论。

 

    被告知“抱歉,重新用原始实现提交拉取请求吧”,于是试图再次从原始分支提交拉取请求,但是…
image.png

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

image.png

由于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。

bannerAds