【Git】応用コマンド&オプション7選

先日の【Git】最初の30分で覚えるべき基本コマンド8選につづいて、応用コマンドを整理しました。

diff

差分を表示する

# HEAD(もしくはインデックス)とワークツリーを比較する
git diff

# 特定のコミット間を比較する
git diff [コミット]..[コミット]

# HEADとインデックスを比較する
git diff --cached

difftool

差分をvimdiffで表示する(git vimdiffなどにエイリアスをはっておくのがおすすめ)

git difftool --tool=vimdiff --no-prompt

reset

変更を元に戻す

# HEAD位置とインデックスを変更する
git reset [コミット]

# HEAD位置だけ変更する
git reset --soft [コミット]

# HEAD位置とインデックス、ワークツリーを変更する
git reset --hard [コミット]

branch

ブランチを確認する

# 現在あるブランチを確認
git branch

# リモートリポジトリのブランチも含めて確認
git branch -a

# ブランチ位置を移動させる
git branch -f [ブランチ名] [移動先コミット]

checkout

ブランチを切り替える

# ブランチを切り替える
git checkout [ブランチ名]

# 直前にいたブランチに切り替える
git checkout -

# ブランチからファイルを現在のインデックスにコピーする
git checkout [ブランチ] -- [ファイル]

merge

ブランチを統合する

# fast-forwardな場合はコミットを作らず、そうでない場合はマージコミットを作る
git merge <ブランチ>

# 必ずマージコミットを作る場合
git merge --no-ff

rebase

ブランチの派生元を変更する

# ブランチの派生元のコミットを変更する
git rebase --onto <新しい派生元コミット> <元の派生元コミット> [変更対象のブランチ]

# 特定のコミットからの履歴を編集する
# (コミットの入れ替えや統合、コミットメッセージの変更など)
git rebase -i <コミット>