HEAD ~1
HEADの親
HEAD ~2
HEADの親の親
HEAD ^1
HEADの1番目の親
HEAD ^2
HEADの2番目の親
HEAD
ORIG_HEAD
git merge や git reset でHEADが移動してしまう.
ORIG_HEADを使うことで移動前のHEADを指定できる.
FETCH_HEAD
git fetch によってリモートリポジトリから取得した最新のコミットを指定できる.
git log --oneline
logを一行で表示する.
git log --decorate
git log --follow FILENAME
FILENAMEのファイルの変更履歴を,たとえ途中でリネームされたとしてもそれも見る.
git log --author <name>
git log --graph
git log -p
git diff <base commit>...<opposit commit>
git log -S "string"
git bisect start <bug commit> <correct commit>
二分探索の開始
git bisect good
git bisect bad
git bisect reset
二分探索の終了
git checkout <branch name, needs to be rebased> git rebase <base of rebase>
rebase
git pull --rebase
git pull は git fetch + git merge
merge ではなく rebase したい場合に利用するのがよい.
git log --merge
git stash
内容の退避
git stash pop
退避した内容の復活
git stash list
退避した内容の一覧
git worktree
git submodule
git rebase -i HEAD~N
Nは自然数.
編集時にエディタが開くが,編集を終えてエディタを閉じてもrebaseが機能しないことがある.
その場合は次のように, .gitconfig へエディタのパスを書けばよい.
[core] editor = /usr/bin/vim