gitの概要メモ 2 localでちょくちょく使いそうなもの

ローカル作業でちょっと使いそうなコマンド集

 

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
 

【参考】[Git]ファイルを移動する(git mv) – とあるエンジニアの闇歴史帳

コメントを残す