GitHub 使い方 コミットの取り消しについて

公開日時 作成者 0gravity000コメントする

GitHub 使い方 コミットの取り消しについて

 

確認環境:

Windows 10

git version 2.9.0.windows.1

 

GitHubで最もよく使うコミットの取り消しについてメモしておきます。

 

HEADについて

HEADとは、現在使用しているブランチの一番先頭をあらわす。

~(チルダー):HEADから何世代前かを指定する

^(キャレット):ブランチが複数ある場合、何番目の親かを指定する

 

指定例:

・HEAD~1:HEADから1世代前を指定

・HEAD~3:HEADから3世代前を指定

・HEAD~1^2:ブランチ2のHEADから1世代前を指定

 

コミットの履歴を表示する

コミットの履歴を表示するには git log

 

コミットを取り消しのバリエーション

・git revert:コミットを指定の時点の状態まで戻すに

(指定の時点に遡り、その状態が新たに追加コミットされる)

指定例:

git revert HEAD~1:直前のコミット(1世代前)の状態まで戻す

git revert HEAD~2:2世代前の状態まで戻す

 

・git reset –hard:コミットを取り消す(消去)

(指定の時点のコミットが消去される)

指定例:

git reset –hard HEAD~1:直前のコミット(1世代前)を取り消す(消去)

git reset –hard HEAD~2:2世代前を取り消す(消去)

 

・git reset –soft:コミットの履歴のみを取り消す(消去)

(履歴は消去されますが、ローカルリポジトリの内容は消去されない点に注意)

指定例:

 

・git rebase -i:pushした後、リモートリポジトリのコミットを取り消す(消去)

このコマンドを実行すると、エディタが開きます。

内容は以下のような内容です。

このエディタの1行目の先頭の「pick」の文字を「drop」に書き換えて保存し終了します。

この後、コマンドプロンプトで

「Successfully rebased and updated refs/heads/master.」

と表示されることを確認します。

この後、git push -f origin master でリモートリポジトリを強制的に書き換えします。

(git push origin master はエラーになります。)

指定例:

git rebase -i HEAD~1:直前のリモートリポジトリのコミットを(1世代前)を取り消す(消去)

git revert HEAD~2:2世代前のリモートリポジトリのコミットを取り消す(消去)

 

・git commit –amend:直前のコミットに上書きする

 

 

コメントを残す

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