カテゴリー
Git GitHub GitHub Desktop プログラミング

GitHub DesktopでPushを取り消す-その2-Reset編

履歴自体をなかったことにする方法

前回、GitHub DesktopでPushを取り消す-その1-Revert編
でRevertして再度PushすることによりPushを取り消しましたが、Push自体をなかった事にする方法があります。
この方法はPushした後に別のユーザーがPullしたときなど不具合が生じるので、状況を見極めて使用してください。
通常は GitHub DesktopでPushを取り消す-その1-Revert編で対応するのが望ましいと思います。

現在の状態

ローカルに1~3のコミットがあります。

GitHubにも1~3のコミットがPush済みです。

今回はコミット2~3を取り消してコミット1だけの状態としていきます。

ローカルをResetする

コミット1を右クリックして”Copy SHA”を選択します。

次に[Repository]メニューの[Open in Command Prompt]を選択します。

するとコマンドプロンプトが開くので、そこに下記のコマンドを入力します。
xxxxxの部分は先ほどコピーしたSHAをペーストしてください。

git reset --hard xxxxx

コミット2・3がなくなってコミット1の状態となりました。

リモートにPushする

[Repository]メニューの[Open in Command Prompt]を選択します。

するとコマンドプロンプトが開くので、そこに下記のコマンドを入力してPushします。
“-f”は強制的にPushする意味です。これがないとPushはエラーとなります。

git push -f origin master

コミット2・3がなくなりコミット1の状態となりました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です