git-sync
にインスパイヤされて作りました
ソースコード
モチベーション
例えばトピックブランチで作業してて、リポジトリの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追記
ブコメで色々突っ込まれてたので追記
git pull --rebase origin master でよさそうな気がするのだけど、違いはどこだろ
git pull --rebase origin masterでいいのでは?
普段 pull --rebase
は使ってないから完全に頭から抜けてたw
挙動的にはこれでいいんだけど、ローカルのmasterやorigin/masterが更新されなくてどこからブランチ伸びてるか分かりづらかったので使うのを以前やめた記憶。
それを気にしなければ git pull --rebase origin master
で全然いいと思います。
俺は“rebase origin/master”派だな
自分もorigin/master派
自分は怠惰なので rebase origin/master
の前に fetch
すら叩きたくない派でした。
fetch && rebase
くらいなら ~/.gitconfig
の alias
にワンライナーで書けるのでできないことはないけど、master以外がデフォルトブランチに設定されてた場合(よくあるのはdevelopブランチ)に途端に複雑度が増すのがアレ。
一応自分の git-update
に関してはmaster以外がデフォルトブランチになってた場合に自動判別してます。
*1:fetchしてrebase origin/masterでもいいんだけど、masterからトピックブランチ作ることが多いので僕はこっちの方が好きです