git commit 取り消し(コメントのみの修正,変更も)

git logo git

 

  1. ワーキングツリー(gitで管理してるディレクトリ)内のファイルを編集
  2. git add
  3. git commit 
  4. 「あ、間違った…」git commit 取り消したい

てとき。

 

「3. git commit」を取り消す

直前のコミットだけ取り消したい場合。

git reset --soft HEAD^

コミットだけ取り消しても、git add したステージングへの更新は消えない。

 

いつも git add は「git add . 」しかしてなかったワシは「コミットだけ取り消してadd 取り消さないってことに意味在るんか?」とアホなことを思っていたが、

git add を何回もやって変更ファイルを追加していってから

git commit する みたいな使い方をする場合意味在るし(というかこれが一般的?)、

 

git commit のコメントを書き換えたい場合にも有効?

…と思ったが、コメントだけ書き換えたい場合は、効率的なやり方があるらしい。↓

 

git commit --amend -m "これが本当に書きたかったコメントだあぁー!"

 

–amend オプション ですって。

「3. git commit」 と 「2. git add」 を取り消す

git commit と、 git add を取り消すには以下のコマンド。

git reset HEAD^

個人的にはこれが一番使いそうやなー。

 

「3. git commit」 と 「2. git add」 と「ワーキングツリー(gitで管理してるディレクトリ)内のファイルを編集」を取り消す

git commit と、 git add と、ワーキングツリーの中身までを直前のコミットの状態に戻すには以下のコマンド。

git reset --hard HEAD^

ワーキングツリーの中身まで戻っちゃうので要注意やでー。

戻す位置指定の仕方

 

git reset HEAD^

↑この緑色で示した部分で、どこまで戻すかを指定できる。

 

3パターン書いておく。

パターン1. 直前のコミット指定

直前のコミット指定するには、

HEAD^

で指定する。

HEAD^:直前のコミットを意味する。

    直前まで戻しちゃう。

     

    例)

    git reset HEAD^

     

    パターン2. ●個前のコミット指定

    ●個前のコミット指定するには、

    HEAD~●

    で指定する。

    HEAD~{n} :n個前のコミットを意味する。 

     

    、8個前のコミットまで巻き戻すときはどうする?もちろん「HEAD^^^^^^^^」と書くこともできるが、指が疲れるし間違えそうだ。そこで「HEAD~8」のように書くこともできる。

    例)

    git reset HEAD~8

     

    パターン3. コミットIDで指定

    指定したコミットIDまで戻すことができる。

    もちろんコミットIDで指定することもできるぞ。たとえば次のように打てる。

    例)

    $ git reset --soft caddd1c

     

     

     

    参考にしたサイト

    [Git]コミットの取り消し、打ち消し、上書き - Qiita
    コミットの取り消し 直前のコミットをなかった事にするには git reset --soft HEAD^ を叩けばOK。 --softオプション:ワークディレクトリの内容はそのままでコミットだけを取り消したい場合に使用...
    [git reset (--hard/--soft)]ワーキングツリー、インデックス、HEADを使いこなす方法 - Qiita
    1. gitの基礎(言葉の意味) ワーキングツリー:最新のファイルの状態 インデックス(ステージ):コミットするためのファイルの状態 ローカルリポジトリ[local re...
    ステージングの変更を確認する - Linux 入門
    今まで Windows を使っていたけど、リナックスを使いはじめたいという人のための簡単なリナックス入門です。

    ありがとうございました!

     

     

     

     

    コメント

    タイトルとURLをコピーしました