テストに出そうなコマンドとオプションをまとめてみた。
add
カレントディレクトリ以下のファイルをインデックスに追加
> git add .
任意ファイルをインデックスに追加
> git add PATH
Git管理になっているファイルでインデックスから変更があったファイルを全部インデックスに追加
> git add -v
インデックスに追加する内容を選択する。
> git add -p
commit
インデックス(Stating Area)をローカルリポジトリに反映
> git commit
commitのやり直し。直近のcommitの内容を現在のStage内容で上書きする。
> git commit --amend
変更ログをインラインで書きたい場合
> git commit -m "commit message"
任意ファイルを「ワーキングコピー→ローカルリポジトリ」でコピーする
> git commit PATH
「ワーキングコピー→ローカルリポジトリ」で変更を反映したい場合(内部で自動的にaddしてくれる)
> git commit -a
diff
「ワーキングコピー」と「インデックス」の差分を表示
> git diff
「インデックス」と「ローカルリポジトリ」の差分を表示
> git diff --cached
「ワーキングコピー」と「ローカルリポジトリ」の差分を表示
> git diff HEAD
rm
stage状態のファイル(commitはまだ)を削除する(ファイル自体もなくなる)
> git rm -f 削除ファイル名
ファイル自体は残すがGit管理外にする
> git rm --cached 削除ファイル名
log
指定日以降のログを表示する
> git log --since=2011-01-11
指定日までのログを表示する
> git log --until=2011-01-11
特定のAuthorのログだけ表示する
> git log --author="yamada tarou"
指定文字列にマッチするログだけ表示する
> git log --grep="test"
diffの内容も表示する
> git log -p
統計データを表示する
> git log --stat
※authorとgrepを同時に指定する場合は「--all-match」を付ける事。
reset
Stage状態の(addした)ファイルのStage解除(未add状態にする)
> git reset HEAD Stage解除ファイル
checkout
カレントブランチの内容にファイルを戻す場合
> git checkout -- 元に戻すファイル名
ブランチ作成とブランチへの切り替えを同時に行う
> git checkout -b ブランチ名
tag
タグを作成
> git tag -a タグ名
タグにログをインラインで書く
> git tag -m "メッセージ"
指定バージョンにタグを付ける
> git tag -a タグ名 指定バージョンのチェックサム値
push
masterブランチの内容をマスターリポジトリに反映する
> git push
指定タグをマスターリポジトリに反映する
> git push origin タグ名
ローカルリポジトリにあって、マスターリポジトリに無いタグを全て追加する
> git push origin --tags
ローカルブランチをリモートブランチに追加する
> git push リモート名 ローカルブランチ名:リモートブランチ名
リモートブランチの削除
> git push リモート名 :ブランチ名
pull
「マスターリポジトリ」の内容を「ローカルリポジトリ」にfetch&mergeする
> git pull
「リモートリポジトリの任意ブランチ」を「ローカルリポジトリの任意ブランチ」にfetch&mergeする
> git pull . remotes/リモートリポジトリ/任意ブランチ
branch
ブランチの作成(作成だけでブランチに移動はしない)
> git branch ブランチ名
ブランチの削除
> git branch -d ブランチ名
ブランチの強制削除(-dだと未マージのブランチは消せない)
> git branch -D ブランチ名
各ブランチの直近のコミットを表示
> git branch -v
リモートブランチを表示する
> git branch -r
現在のブランチにマージ済みのブランチ表示(マージ済みなので消して良い)
> git branch --merged
現在のブランチにマージされていないブランチ表示
> git branch --no-merged
merge
ブランチのマージ
> git merge ブランチ名
rebase
作業ブランチを任意ブランチにrebaseする
> git rebase 任意ブランチ
ブランチ1から派生したブランチ1-1だけを任意ブランチにrebaseする
> git rebase --onto 任意ブランチ ブランチ1 ブランチ1-1
【関連する記事】