漫画、作曲、ラップ、プログラミングをやっています。I am Keita Roimo: Manga Artist, Musician, Rapper, Software Engineer.
Monday, January 22, 2018
Gitのrebaseの重要性
rebaseというのは往々にして看過されがちなgitのコマンドである。また、中身もきちんと見ていくと頭がこんがらがるので、よくわからない、馬鹿にでもわかるようにざっくり説明してくれ、となると以下のようになる。
「mergeは基本歴史が汚れるので、そういうのをもっと綺麗にする」
gitでmergeしていくと、複数人、しかも大規模な人数での開発だとあの人がこれしました、この人がこれしましたみたいな履歴がどんどん山のように積み重なっていく。で、そいつらをまんまくっつけまくってるとぐちゃぐちゃしてごちゃごちゃしてとんでもなくなってしまうということです。
rebaseは、そういうのをどうにかしてくれるということです。
なので、Commitが1000あるようなウンコブランチでも、Commitを一個にできる。
また、過去のCommitを編集したり、Commit同士をくっつけたり、特定のCommitを消すこともrebaseだとできる。
$ git rebase -i develop
などが有名なCommitの編集方法です。弊社では基本まずdevelopブランチが権威あるものなので、こいつ中心で考えると、
$ git checkout develop
$ git pull develop
$ git checkout my_branch
$ git rebase -i develop
というとても面倒臭い事をしなきゃいけないくてとっても残念です。なので僕は以下のスクリプトを使っています
https://github.com/keitaroemotion/gco
で、
$gco pp; git rebase -i develop
なんかやると上の一連の操作をやってくれます(詳しくはソースコードを読んでね)
さらに、
/usr/local/bin/gcopp
みたいなのを作り、そこに
gco pp
みたいに書いた後
$chmod +x /usr/local/bin/gcopp
ってやり、かつ同じ要領で
/usr/local/bin/rid に
git rebase -i develop
みたいなのを書いて、
$ gcopp; rid
ってうてば全部よしなにやってくれます。
以上
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment