LoginSignup
51
49

More than 5 years have passed since last update.

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

Last updated at Posted at 2013-12-11

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 ネタあったらウェルカム!

51
49
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
51
49