個人的によく使うgitコマンドメモ。

作業ディレクトリを編集前の状態に戻したい

  1. 編集したファイルを直前のコミット時の状態に戻す
    git reset --hard

  2. 管理していない新規ファイルやディレクトリを削除
    git clean -df

直前のコミットをなかったことにする

  1. コミットログを確認
    git log

  2. 取り消す
    git reset --soft HEAD^

  3. コミットログから消えたことを確認
    git log

コンフリクトした時にマージしようとしたブランチの状態に戻す

masterマージしたらコンフリクト激しくて一旦masterを正としてしまいたいとき。

git checkout --theirs {ファイルパス}

作業ブランチの状態に戻したい時は--oursでいける模様。
参考)https://qiita.com/nirasan/items/27cdd75e8117bf41d2be#%E5%85%88%E3%81%AB%E7%B5%90%E8%AB%96

リモートのブランチをローカルにチェックアウト

  1. まずはfetch
    git fetch

  2. リモートのブランチ確認
    git branch -a
    ※ -aオプションでリモートブランチを表示

  3. ローカルブランチ名を指定して、リモートブランチをチェックアウト
    git checkout -b other_branch origin/other_branch
    ※ -bオプションで自動的にそのブランチに切り替わる

強制的にブランチを切り替える

  1. 強制的にcheckout
    git checkout -f branch_name

強制的にpull

  1. resetを使う
    git reset --hard origin/master

リポジトリをエクスポートする

  1. ※cloneしておく必要あり
    git checkout-index -a --prefix=/target_dir/

pullする前に変更点を確認

差分を見る

git diff HEAD..リモート名/ブランチ名

差分を見る(ファイル名のみ)

git diff HEAD..リモート名/ブランチ名  --name-only

差分を見る(ファイル名と変更量)

git diff HEAD..リモート名/ブランチ名 --stat

マージコミットをrevertする

git revert -n -m 1 {コミットID}

-n: コミットしない(差分見てからコミットしたいため)
-m: マージのrevertでは必須。1or2を指定してどちらのブランチに戻すか指定する(1でやって差分ダメなら2にしてみるとかでいいかもw)

以前の状態に戻してそれを新規コミットとしたい

※resetだと新規コミットとはならないので、あえてコミットとして残したい場合
複数コミットをrevertすればOK

コミットが連続している場合

git revert -n {戻したい時点のコミットID}..HEAD

コミットが連続していない場合

git revert -n {コミットID}
git revert -n {コミットID}

-n: コミットしない(差分見てからコミットしたいため)
最後にコミットする

チェリーピック!

git cherry-pick -n {コミットID}

-n: コミットしない(差分見てからコミットしたいため)

Tags:

Updated: