随時追加
git log系
特定のファイルのコミット履歴を確認したい時
git log 対象のファイル
特定の期間のコミット履歴を確認したい時
git log --since="開始日" --until="終了日"
特定の人のコミット履歴を確認したい時
git log --author='コミット者の登録名'
コミットメッセージで検索したい時
git log --grep='コミットメッセージ'
ある特定の文字列が更新・削除されたリビジョンを取得する
git log -S "対象文字列"
ある特定の文字列が更新・削除されたリビジョンと行を取得する
git log -p -S "対象文字列"
プロジェクトのコミットした行数を取得する
git log --numstat --pretty="%H" --author='名前' --since=2018-08-28 --until=2018-08-29 --no-merges | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("%d (+%d, -%d)\n", plus+minus, plus, minus)}'
git reset系
直前のコミットだけブランチを間違ってしまった時
git reset --soft HEAD^
直前のコミット・プッシュのブランチを間違ってしまった時
git reset --soft HEAD^
git push -f origin 変更内容を消したいブランチ
特定のコミットを削除したい場合
git reset --soft ハッシュ値
git commit系
直前のコミットだけコミットメッセージを間違ってしまった時
git commit --amend -m "直したいメッセージ"
git revert系
特定のcommitを打ち消したい時(元に戻したい)
git log -S '戻したい文字列を覚えて入れば' ファイル
コミットIDを確認
git revert コミットID
git rebase系
直近のコミットメッセージをまとめたい時
git rebase -i HEAD~まとめたいコミット数
新しくまとめたコミットメッセージを作る場合(squash)
pickをsquashに変更し保存(対象のコミットメッセージの冒頭)
コミットメッセージを入力し保存
既存のまとめたコミットメッセージにする場合(fixup)
pickをfixupに変更し保存(対象のコミットメッセージの冒頭)
git push -f origin 対象のブランチ
まとめ方を間違えた時
git rebase --abort
git cherry-pick系
別ブランチを切って、他の複数ブランチの特定のコミットをまとめたい時
git checkout -b ブランチ名
git cherry-pick コミットID
git blame系
特定の行のコミット履歴を見たい時
git blame -L 該当開始行,該当終了行 ファイル名
特定箇所のコミット履歴を見たい時
git blame -L /特定文字列/ ファイル名
その他
特定のファイルのコミット履歴とファイルを抹消したい時
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch ファイル名' HEAD
git gc --aggressive --prune=now
git push -f
他のユーザーも利用しているリポジトリなどであった場合はクローンし直してもらう必要がある
特定のコミットの差分を確認したい時
git show コミットハッシュ