ローカル作業でちょっと使いそうなコマンド集
git status
git監視下のファイルが現在どの状態にあるかを確認することができる。
このまま使っても良いが何とも読みにくいので常にオプションを付けると良いかも。
$ git status --short --branch
これで、状態が一文字で、さらに文頭に現在のブランチ名が表示される。
これは更に省略して以下のようにも書ける。
$ git status -sb
M_ | addされている |
_M | addされていない |
A_ | 新規ファイルがAddされている |
_D | 削除されている(git rmではない方法で) |
?? | git監視下にない |
UU | mergeする双方に変更箇所がありconflictした |
DU | mergeする手元のファイルが削除されているためconflictした |
git log
コミットのログを参照する。
$ git log --oneline
一行で表示
$ git log -p
変更内容が見れる
$ git log --stat
どのファイルが何箇所変更されたかを見る
$ git log --cached
ワーキングディレクトリとステージングエリアの差異を表示
$ git log --graph
グラフっぽく表示
$ git log --until=yyyy-mm-dd --until=yyyy-mm-dd
で、期間を指定することもできる
$ git log [commit id 1] [commit id 2]
commit間の差異を表示
git reset
HEADの位置を変更する。
git reset --soft
HEADの位置のみ
git reset --mixed
HEADの位置、ステージングエリア
git reset --hard
HEADの位置、ステージングエリア、ワーキングディレクトリ全て
が修正される。
以下のサイトが超わかりやすい。
【参考】
[git reset (–hard/–soft)]ワーキングツリー、インデックス、HEADを使いこなす方法 – Qiita
git reset についてもまとめてみる – murankの日記
個人的によく使うのはこれ。
$ git reset --hard HEAD
直前のcommit後に変更した箇所をすべて削除して、直前のcommitの状態に戻す。
もう一個前に戻りたい
$ git reset --hard HEAD^
または、
$ git reset --hard commitID(最低7文字)
でも行ける
resetのreset
$ git reset --hard ORIG_HEAD
git clean
どうやらresetでは未追跡ファイルは削除されないらしい。
git cleanで未追跡ファイルを削除する。
未追跡ファイルとはgit status -sb
で??
と表示されているファイルたちのこと。
$ git clean -df -n
予行演習。削除は実行されずに、削除対象のファイル名、ディレクトリ名の一覧が表示される。
$ git clean -df
未追跡のファイルとディレクトリを削除。
【参
考】
git cleanでUntracked files(未追跡ファイル)をまとめて削除 | EasyRamble
git rm
ファイルを削除する。
hogeファイルを削除。
$ git rm hoge.txt
hogeディレクトリを削除
$ git rm -r hoge
【参考】
http://swift-studying.com/blog/swift/?p=1334
git mv
ファイルの移動とリネーム
移動する
$ git mv [ファイルのパス] [移動後のファイルのパス]
リネームする
old.txtからnew.txtにリネームする
$ git mv old.txt new.txt