俺のgitコマンド
個人的によく使うgitコマンドメモ。
作業ディレクトリを編集前の状態に戻したい
-
編集したファイルを直前のコミット時の状態に戻す
git reset --hard
-
管理していない新規ファイルやディレクトリを削除
git clean -df
直前のコミットをなかったことにする
-
コミットログを確認
git log
-
取り消す
git reset --soft HEAD^
-
コミットログから消えたことを確認
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
リモートのブランチをローカルにチェックアウト
-
まずはfetch
git fetch
-
リモートのブランチ確認
git branch -a
※ -aオプションでリモートブランチを表示 -
ローカルブランチ名を指定して、リモートブランチをチェックアウト
git checkout -b other_branch origin/other_branch
※ -bオプションで自動的にそのブランチに切り替わる
強制的にブランチを切り替える
- 強制的にcheckout
git checkout -f branch_name
強制的にpull
- resetを使う
git reset --hard origin/master
リポジトリをエクスポートする
- ※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: コミットしない(差分見てからコミットしたいため)