気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

Git 各種状態で元に戻すコマンド

まずはリポジトリの状態確認

git log
git statuts
git diff

元に戻すコマンド

戻す対象とコマンドを列挙していきます。

addしていないファイル

# .はパス。パス以下を戻す
git checkout .

※ 新規作成ファイルは削除されない

addしたファイル

git reset .

オプション、--mixedと同等。HEADの位置とインデックスを変更する

新規ファイルを含めて、すべての変更を元に戻す

対象ファイルを指定しないとすべての変更が元に戻るので注意

# 対象ファイルを念のため確認
git clean -n

# 削除実行
git clean -f <対象ファイル>

直前のcommitを戻す(ローカル変更内容はそのまま)

git reset HEAD^

cherry-pickを取り消す

git reset --hard HEAD~

初期コミットをなかったことにする

初期コミットファイルは残る。

git update-ref -d HEAD

異なるユーザーでpushしたコミットを戻す

間違えたプッシュをリモートから取消

git push -f origin HEAD^:[ブランチ名]
これでgithub上から直前のプッシュを取り消す

間違えたコミットを取り消し

直前のコミットを取り消す(--softオプションにより変更したファイルはそのまま)

git reset --soft HEAD^

ユーザ名変更

cat .git/config で今のユーザ設定確認
git config user.name "hoge"
git config user.email "hoge@hoge.com"

再びコミット&プッシュすることで自分がコミット&プッシュしたことにできる