履歴自体をなかったことにする方法
前回、GitHub DesktopでPushを取り消す-その1-Revert編
でRevertして再度PushすることによりPushを取り消しましたが、Push自体をなかった事にする方法があります。
この方法はPushした後に別のユーザーがPullしたときなど不具合が生じるので、状況を見極めて使用してください。
通常は GitHub DesktopでPushを取り消す-その1-Revert編で対応するのが望ましいと思います。
現在の状態
ローカルに1~3のコミットがあります。
![](https://www.it-ouji.com/wp-content/uploads/2020/05/git_1-2-1024x338.png)
GitHubにも1~3のコミットがPush済みです。
![](https://www.it-ouji.com/wp-content/uploads/2020/05/git_2-2-1024x296.png)
今回はコミット2~3を取り消してコミット1だけの状態としていきます。
ローカルをResetする
コミット1を右クリックして”Copy SHA”を選択します。
![](https://www.it-ouji.com/wp-content/uploads/2020/05/git3-1024x358.png)
次に[Repository]メニューの[Open in Command Prompt]を選択します。
![](https://www.it-ouji.com/wp-content/uploads/2020/05/git4-1024x363.png)
するとコマンドプロンプトが開くので、そこに下記のコマンドを入力します。
xxxxxの部分は先ほどコピーしたSHAをペーストしてください。
git reset --hard xxxxx
コミット2・3がなくなってコミット1の状態となりました。
![](https://www.it-ouji.com/wp-content/uploads/2020/05/git5-1024x630.png)
リモートにPushする
[Repository]メニューの[Open in Command Prompt]を選択します。
![](https://www.it-ouji.com/wp-content/uploads/2020/05/git6-1024x408.png)
するとコマンドプロンプトが開くので、そこに下記のコマンドを入力してPushします。
“-f”は強制的にPushする意味です。これがないとPushはエラーとなります。
git push -f origin master
コミット2・3がなくなりコミット1の状態となりました。
![](https://www.it-ouji.com/wp-content/uploads/2020/05/git7-1024x264.png)