勉強会でGitの使い方について色々知った
- A-B-C-Dと積まれているコミットを
A-B-C
└D
みたいに分けたいときどうするか
- branch && reset && commit -a
- それrebase --ontoでできね?
- マニュアル見よう! git help rebase
We can get this using the following command: git rebase --onto master next topic Another example of --onto option is to rebase part of a branch. If we have the following situation: H---I---J topicB / E---F---G topicA / A---B---C---D master then the command git rebase --onto master topicA topicB would result in: H'--I'--J' topicB / | E---F---G topicA |/ A---B---C---D master This is useful when topicB does not depend on topicA.
- へぇへぇへぇへぇへぇ
- Aブランチの機能を前提にしたBブランチがあって、Bブランチの機能を前提にしたCブランチがあって…、どうするべき?
- 「Aブランチの機能を前提にしているBブランチ」→BはAに依存している→一つの大きな機能と言える(以下同文)
- Bブランチが完成した時点でAをBの先頭までFFで進めて、Cをそこから切ってを繰り返して、(以下同文)
- 最後にAとmasterを合体するときにマージコミットを作れば、履歴とか残っていいんじゃね?
- なるほどー
- 色
- gitconfigでdiffのときとかlogのときとか、もっと細かく色を指定できる
- blinkうざいw
- diffしたときにファイル名付近の塊が白色で、他と混ざるのを防げるのは良い!
- rebaseすべき? mergeすべき?
- pull reqでconflict発生したときの話
- 機能的にmasterと関連ないならrebaseしても誰も困らないし、歴史も綺麗
- mergeで追従しちゃうとマージコミットが1個できる。このコミットに意味があるかないかが判断材料。
- rebase -iしたときのオプション
- pick=残す、squash=上のと合体、edit=そこで止めて編集、fixup=squashと一緒だけどこのコミットメッセージは要らない
- add -pしたときのオプション
- y=インデックスステージに乗せる、n=乗せない、q=そこでadd止める、e=エディタが開いて自分で仕分け、s=1行単位で再表示
rebase --ontoと、rebase -iのfixupと、add -pのs(split)を覚えた!