くりにっき

フルスタックキュアエンジニアです

git-updateがクソ便利

git-syncインスパイヤされて作りました

qiita.com

ソースコード

gist.github.com

モチベーション

例えばトピックブランチで作業してて、リポジトリのmasterが更新されたから最新のmasterを取り込んでrebaseするってことよくやると思うのですが、その時にいちいち

git checkout master
git pull --ff
git checkout topic_branch
git rebase master

みたいなことをやるのが大変なのでサブコマンドにしました。 *1

3ヶ月くらい使ってるけど割と開発が捗ってます。

~/.gitconfig のaliasにも up = update で登録してるので、1時間に1回くらいは g up 叩いてるんじゃないかなw

https://github.com/sue445/dotfiles/blob/65468baf32e391a78216018942bc4a158024e7af/_gitconfig#L57

おまけ:dotfilesでオレオレgitサブコマンドを運用する方法

自分のdotfilesに bin/ を置いて、そこにPATHを通して使っています

設定はこんな感じ

https://github.com/sue445/dotfiles/blob/65468baf32e391a78216018942bc4a158024e7af/_bashrc#L113-L114

2019/3/4追記

ブコメで色々突っ込まれてたので追記

id:manaten

git pull --rebase origin master でよさそうな気がするのだけど、違いはどこだろ

id:ramen31

git pull --rebase origin masterでいいのでは?

普段 pull --rebase は使ってないから完全に頭から抜けてたw

挙動的にはこれでいいんだけど、ローカルのmasterやorigin/masterが更新されなくてどこからブランチ伸びてるか分かりづらかったので使うのを以前やめた記憶。

それを気にしなければ git pull --rebase origin master で全然いいと思います。

id:tofu-kun

俺は“rebase origin/master”派だな

id:PEEE

自分もorigin/master派

自分は怠惰なので rebase origin/master の前に fetch すら叩きたくない派でした。

fetch && rebase くらいなら ~/.gitconfigaliasワンライナーで書けるのでできないことはないけど、master以外がデフォルトブランチに設定されてた場合(よくあるのはdevelopブランチ)に途端に複雑度が増すのがアレ。

一応自分の git-update に関してはmaster以外がデフォルトブランチになってた場合に自動判別してます。

*1:fetchしてrebase origin/masterでもいいんだけど、masterからトピックブランチ作ることが多いので僕はこっちの方が好きです