たばりばりスタイル

たばりばりスタイル

バリバリバリ⚡︎

個人的によく使うGitコマンドのユースケースごとの備忘録

普段使い PC 上だと history を参照してある程度必要な操作はできるのですが、新しい支給 PC を利用するシーンなどでは Git コマンドを忘れてググることが多かったので、備忘録として残しておきます。

ちなみに直近でよく使った Git コマンドは下記です。

$ history | grep '^git ' | awk '{ print $1, $2 }' | sort | uniq -c | sort -r | head
1619 git commit
 820 git add
 535 git checkout
 281 git diff
 219 git push
  81 git reset
  78 git log
  74 git clone
  72 git branch
  70 git status
  57 git remote
  25 git rebase
  19 git pull
  18 git cherry-pick
  17 git merge
  15 git show
  10 git config
   9 git stash
   5 git revert
   4 git secrets

git commit でよく使うケース

直前の commit にまとめたいケース

$ git add README.md
$ git commit --amend --no-edit

直前のコミットのメッセージを編集したいケース

$ git commit --amend

変更部分を表示してコミットしたいケース

$ git commit -v

git add でよく使うケース

特記事項なし

git checkout でよく使うケース

checkout は peco と組み合わせた alias を使って下記コマンドを使っています。かなり便利です。

alias gc='git branch | peco | xargs git checkout'

リモートのブランチに checkout したいケース

$ git pull
$ git checkout "target_remote_branch_name"

git diff でよく使うケース

別ブランチとの差分を確認したいケース

$ git diff "target_branch_name" --name-only # ファイル名のみ
$ git diff "target_branch_name" README.md # 特定ファイルの差分のみ

git push でよく使うケース

$ git push origin HEAD
$ git push origin HEAD -f # force

git reset でよく使うケース

各種取り消ししたいケース

$ git reset # add 取り消し
$ git reset HEAD^ # 直前のコミットを取り消し
$ git reset --hard # add 取り消し & 現在の変更内容を破棄

git log でよく使うケース

$ git log --oneline README.md | head # ログを 1 行表示

git clone でよく使うケース

特記事項なし

git branch でよく使うケース

不要ブランチを削除したいケース

$ git branch -D "target_branch_name"

git status でよく使うケース

特記事項なし

git remote でよく使うケース

既存リモート URL 一覧を表示したいケース

$ git remote -v

git rebase でよく使うケース

複数コミットをまとめたいケース

$ git rebase -i HEAD~3 
# $ git rebase --abort # conflict した場合に利用

git pull でよく使うケース

リモートで更新されたブランチを pull したいケース

<master> $ git checkout "develop" # 対象ブランチに checkout
<develop> $ git pull origin "develop" # ブランチ名を指定して pull

git cherry-pick でよく使うケース

普通に cherry-pick

<master> $ git checkout "target_branch"
<target_branch> $ git cherry-pick a1b2c3d4

git merge でよく使うケース

feature/123 ブランチに develop ブランチをマージしたいケース (feature/123 <- develop)

<master> $ git checkout feature/123
<feature/123> $ git merge develop

git show でよく使うケース

特記事項なし

git config でよく使うケース

user 設定したいケース

$ git config --global user.name tabakazu
$ git config --global user.email tabakazu@example.com

git stash でよく使うケース

変更を一時退避して、戻したいケース

$ git stash save # 変更を一時退避
$ git stash list # 退避した変更の一覧
$ git stash pop "stash@{0}" # 退避した変更の取り出し

git revert でよく使うケース

普通に revert

$ git revert a1b2c3d4

git secrets でよく使うケース

クラウド破産しないように git-secrets を使う - Qiita

その他

fork 先を追従したいケース

GitHubでFork/cloneしたリポジトリを本家リポジトリに追従する - Qiita

$ git remote add upstream https://github.com/rails/rails.git
$ git remote add upstream git@github.com:rails/rails.git
$ git checkout master
$ git fetch upstream
$ git merge upstream/master

コミット数ランキングを表示したいケース

git shortlog -s -n

以上です。