Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
50
Help us understand the problem. What is going on with this article?
@sonots

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

More than 5 years have passed since last update.

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

50
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
sonots
A Ruby, Fluentd, and Chainer Committer. SRE Engineer. Qiitaは小ネタの投稿場所として利用しています。業務コードで、なぜそういう書き方をしているのか解説をQiitaに書いて、コードにはQiitaへのリンクを張る、という使い方をしていることが多いです(自己紹介じゃない)
zozotech
70億人のファッションを技術の力で変えていく

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
50
Help us understand the problem. What is going on with this article?