WEB+DB PRESS Vol.50.のgitのまとめ記事が素敵

という評判を見たので読んだらほんとに素敵だったので備忘録
ボリュームが凄いので定時後に見ると眠くなります

.gitconfigに

[color]
ui = auto

でstatusとかdiffが色付きに
個別に--color付けるより面倒じゃない

git add -u

でバージョン管理している全てのファイルの現在の状態を次のコミットに記録

コミット時のメッセージ

コミット時のメッセージは次のフォーマットにすると後で幸せになれる
1行目…要約(1行)
2行目…空行
3行目…理由の説明(複数行)

git log -p

パッチ形式でログを表示
-nで表示するコミット数を制限

git log --pretty=short

ログメッセージを最初の1段落のみ表示する

git add -p

ハンクのステージング
変更箇所が複数あるとき、任意の変更箇所だけコミットできる

git commit -v

diff表示しつつコミット

git add -A

バージョン管理対象となっている全てのファイルに加え、.gitignoreで無視していないワークツリーの新ファイル全ての状態をインデックスに追加
※1.6以降のみ
1.6以前での同等の操作は
git add . && git add -u

git commit

特定ファイルのみコミット

add -uとadd -Aの違い

git add -u
インデックスから変更されたファイルをインデックスに記録
git add -A
-u に加え、.gitignore で無視されていない新ファイルもインデックスに追加

git reset

addの取り消し(多分。)

git log

にマッチするファイル名やディレクトリ名を含むコミットログのみを表示、スペース区切りでor検索

git log --grep='hoge'

コミットログに hoge を含むログのみを表示
複数指定可能、デフォルトはor検索なのでand検索にしたいときは
--all-match を併用

git blame

ファイル内の1行1行がどのコミットで記録した状態からきたかを表示

git revert <リビジョンを示すsha1id>

コミットを取り消す

git checkout

変更を取り消す

git reset HEAD^

一つ前のコミットに戻る

git reset --hard HEAD^

HEAD^に記録している状態から囲碁にワークツリーに行った変更も戻す

git reset --hard HEAD

最新のコミット以後、ワークツリー中のファイルに行った全ての変更を取り消す

git commit --amend

コミットをやり直す
git reset HEAD^してコミットしたのと同じ

git checkout -b hoge

以下と等価
git branche hoge; git checkout hoge
現在の状態をもとにして新しいブランチを作成し、そのブランチ上で開発する

git branch

現在のブランチを表示