Tech`s Report

MENU

【簡単解説】Gitでコミットとプッシュした編集の取り消し方法【git revert】

フリーエンジニア向け案件を紹介【BTCエージェント】

今回はGitでpushした内容の取り消しを行いたいと思います。

やりたいこと

①ローカルリポジトリにcommitした内容をもとに戻す
②リモートリポジトリにpushした内容をもとに戻す  

<イメージ>
f:id:TechnologyShare:20200426195339p:plain

コミットの取り消し

git logコマンドで取り消したいコミットIDを確認する

以下過去にコミットした内容のコミットIDを確認できるコマンドになります。

git log 

 
実行結果

commit 4354ebde1ce828f3a509ae3c0b96fe245e06fabe (HEAD -> Techs_test_branch1)
Author: TechReport <ww.ys7my@gmail.com>
Date:   Sun Apr 26 19:57:18 2020 +0900

    取り消しテスト

コミットIDは「4354ebde1ce828f3a509ae3c0b96fe245e06fabe」になります。
ちなみに(HEAD -> XXXXXXX(ユーザ名))がついているものは最新のコミットという印になります。
「取り消しテスト」と記載されている箇所はコミット時に設定したメッセージになります。
 

git revert コマンドで任意のコミットを取り消し

以下コミットIDを指定して取り消しするコマンドです。

git revert <commit id>

例)git revert 4354ebde1ce828f3a509ae3c0b96fe245e06fabe
 
コッミトメッセージの入力が求められるため 必要に応じて以下コマンドで終了してください。
・変更した場合:【:wq】保存して終了
・変更しない場合:【:q!】保存せずに終了

 

実行後に git logコマンドで確認してみましょう。

commit eec92d42ab1efd91ccfcdf6d91cf90b7920ca073 (HEAD -> Techs_test_branch1)
Author: TechReport <ww.ys7my@gmail.com>
Date:   Sun Apr 26 20:04:48 2020 +0900

    Revert "取り消しテスト"

    This reverts commit 4354ebde1ce828f3a509ae3c0b96fe245e06fabe.

取り消し(reverts )されてますね。これでローカルにコミットした内容の取り消しは完了です。
 

push コマンドでリモートリポジトリに反映

もし、取り消したいcommitを既にリモートリポジトリにpushしてしまっている場合は最後にpushしてあげましょう

git push origin [ブランチ名]

例) git push origin Techs_test_branch1

master場合は「git push」のみ

これでリモートリポジトリへの取り消し修正も完了です。

 

参考)revert コマンドの便利なオプション

最新のコミットを指定した取り消し

コミットIDを指定せずに「HEAD」と入力しましょう。

git revert HEAD

 

取り消し時にメッセージの編集をスキップしたい

末尾に「--no-edit」を付与してあげましょう。

git revert <commit> --no-edit

 
以上です。

<関連記事>

・コマンドラインから脱却・Gitクライアントツールはこちら
SourceTreeのダウンロード・インストール for Windows 10【Gitクライアント】 - Tech’s Report

・コミットとプッシュのやり方はこちら
【簡単解説】Gitのコミットとプッシュのやり方【commit - push】 - Tech’s Report

・クローンとブランチ作成のやり方はこちら
【簡単解説】Gitのクローンとブランチ作成のやり方【clone - checkout】 - Tech’s Report

・チェックアウト・ブランチ切り替えはこちら
【簡単解説】Gitのブランチを切り替える方法【git checkout】 - Tech’s Report

・ブランチのマージのやり方はこちら
【簡単解説】Gitのブランチをmasterにマージする方法【git merge】 - Tech’s Report