git current-branch, git fetch-pulls, git pull-dry-run など git alias ネタ

  • 48
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。

Git Advent Calendar 11日目担当の @sonots です。

ちょっとした git alias ネタを紹介します。

git current-branch

git の current branch をコマンドで取得するにはこんなかんじのことをします。

$ git rev-parse --abbrev-ref HEAD

ということで ~/.gitconfig の [alias] の下に

  current-branch = rev-parse --abbrev-ref HEAD

と追記し、git current-branch と打って使っています.

ggpull

origin リモートの current-branch を pull する alias です。
oh-my-zsh の git plugin を真似して git の alias ではなくシェルの alias にしています。.zshrc または .bashrc に、

alias ggpull='git pull --rebase origin $(git current-branch)'

ついでに、いつも fork 元のレポジトリは upstream という名前にするようにしているので、次のようにして gupull でもってこれるようにもしています。

alias gupull='git pull --rebase upstream $(git current-branch)'

git fetch-pulls

こんなかんじにすると github の pull requests を手元に持ってくることができます。

$ git fetch origin '+refs/pull/*:refs/remotes/pr/*'

ということで ~/.gitconfig の [alias] の下に

  fetch-pulls = fetch origin +refs/pull/*:refs/remotes/pull/*

と追記し、git fetch-pulls と打って使っています.

pull request をもらった時に、その pull req ブランチを手元に持ってきて実際に走らせたりするときに使ってます。

git pull-dry-run

git pull してからコンフリクトすると嫌なので、git pull する前に変更をあらかじめ調べるにはどうしたら良い?
という話が社内IRCでちょろっと出た時に見つかった解決策です。こんなかんじでできます。

$ git fetch origin; B=$(git rev-parse --abbrev-ref HEAD); git diff --stat --summary ${B}..origin/${B}
 CHANGELOG.md                       | 6 ++++++
 README.md                          | 8 ++++----
 2 files changed, 12 insertions(+), 4 deletions(-)

ということで ~/.gitconfig の [alias] の下に

  pull-dry-run  = !"git fetch origin; B=$(git rev-parse --abbrev-ref HEAD); git diff --stat --summary ${B}..origin/${B}"

と追記し、git pull-dry-run と打って使っています.

※ あ、(ひ)メモ にすでに書いてあった。。。まぁ、alias 化したということで。。。

おわりに

もっと改善点とか alias ネタあったらウェルカム!

この投稿は Git Advent Calendar 201311日目の記事です。