4
7

More than 5 years have passed since last update.

Gitでもろもろやり直したいと思った時の対処法

Posted at

はじめに

Gitは、リポジトリでファイルを管理するため、そのリポジトリにファイルをもってくるための「登録(add)」と「コミット(commit)」、最後にリモート上にあるリポジトリに「アップロード(push)」する等の操作があるのですが、間違えて処理してしまったり、自分が思ってた結果にならなかったりして、処理をやり直すことがよくあります。そんな時にいつもどうやって処理したらいいか忘れがちなので、各状況に応じた対処法を備忘録として残しておきます。

ファイルの編集をやり直したい 〜git add .実行前〜

$ git checkout .   #ファイル編集の取り消し 【注】新規追加ファイルは削除されない
$ git clean -df .   #新規追加ファイルの取り消し

git add .をやり直したい 〜git commit 実行前〜

$ git reset HEAD .  

addの取り消しのみとなるため、ファイル編集も行う場合は上記の「ファイルの編集をやり直したい」を実行する。

commit をやり直したい

$ git reset --hard(soft) HEAD^  #最新のコミットの取り消し
コマンド    意味               
--hard コミットを取り消し、ワークディレクトリの内容も書き換える    
--soft ワークディレクトリの内容はそのまま、コミットだけを取り消す
HEAD^ 直前のコミット
HEAD~{n} n個前のコミット HEAD^^^とHEAD~3とHEAD~~~とHEAD~{3}と@^^^は同じ意味
git commit --amand

直前のコミットメッセージを変更する。

push をやり直したい

$ git revert [commit ID]
$ git push

・[commit ID]はgit logで確認
 『commit b170aafd30b30230a4df3597e11a0195094d84b6』こんな感じのコミット以下の値を貼り付ける。
・指定したコミット時点の状態にまで戻し、コミットを行うが、resetと違って履歴は消えない。

4
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
7