マージ済ブランチを消すコマンドをつくった

2015-12-27 00:00
git

今までマージ済ブランチを消す時、git branch --mergedしてから1個1個git branch -d xxxxとか面倒くさいことしてたので、マージ済ブランチを表示して確認後にyesと打てばまとめて消せるようにした。
但し、originとdevelopは消さないようにしてる。

function git-delete-merged() {
  merged=`git branch --merged | egrep -v '\*|develop|master'`
  if [[ $merged = "" ]]; then
    echo 'No merged branch.'
    return 0
  fi

  echo -en "$merged\\ndelete? (y)es/(n)o: "
  read ans

  if [[ $ans =~ ^y(es)?$ ]]; then
    echo "$merged" | xargs git branch -d
  else
    echo 'Cancelled.'
  fi
}

alias gdm='git-delete-merged'

参考

Gitでマージ済みブランチを一括削除

ついでに

今までGitのサブコマンドはgitconfigのaliasに定義してたけど、git xxって打つのもちょっと手間なのでalias整理した!

alias ga='git add'
alias gap='git add -p'
alias gb='git branch'
alias gcm='git commit -v'
alias gca='git commit --amend'
alias gco='git checkout'
alias gcof='git-checkout-force'
alias gcp='git cherry-pick'
alias gd='git diff'
alias gdm='git-delete-merged'
alias gl="git log --pretty='%h %ci %s %cn'"
alias gpl='git pull'
alias grb='git rabase'
alias grbi='git rabse -i'
alias grba='git rabse --abort'
alias grbc='git rabse --continue'
for n in $(seq 10); do
  alias grbi$n="git rebase -i HEAD~$n"
done
alias grs='git reset'
for n in $(seq 10); do
  alias grs$n="git reset HEAD~$n"
done
alias gs='git status'
alias gps='git push'

まだ慣れてなくてすぐgitって打っちゃうので、早く身体に覚えさせたい。

参考

よく使うGitコマンドのエイリアス&シェル関数トップ10+α


« vimでgitするにはvimagitがお...ctrlp.vimを試してみる »