最近、GITの機能ブランチのリベース戦略に絶対に反対する人々と議論しました。ローカルのプライベートブランチにのみリベースを使用することは受け入れられているパターンのようですが、この「リベースのゴールデンルール」と呼ばれるように、同じ機能とブランチで作業する複数の人がいる場合はリベースを使用しないでください://www.atlassian.com/git/tutorials/merging-vs-rebasing/conceptual-overview)
これにはコンセンサスがあることに驚いています。私は完全なリベース戦略で3年間働いたが、約20人の開発者が一緒に働いて、それがうまくいったことを推測した。
プロセスは基本的に次のとおりです。
- 機能ブランチを作成し、「myfeature」と呼び、origin / myfeatureにプッシュします。
- 他の人がそれをチェックアウトして作業するかもしれません
- マスターからリベースすることがあります: "myfeature"から、git rebase origin / master ; そして、はい、あなたはそれをプッシュする必要があります。
- 他の人がコミットをプッシュしたい場合はどうなりますか?彼らはそれをリベースするだけです:git rebase origin / myfeature。そのため、彼らは現在、早送りしており、無理なくプッシュすることができます。
尊重する唯一の原則は、機能ブランチが誰かによって所有されているということです。プッシュフォースできるのは所有者だけです。
だから、私は認める:プッシュ力があるとすぐに、エラーを起こすリスクがある。それは本当だ。しかし、エラーから回復する方法もたくさんあります。実際、3年間の開発では、強制的なミスはあまり見られませんでした。それが起こったとき、常に適切に回復する方法を見つけました。
それでは、なぜこの「リベースの黄金のルール」が広く受け入れられているのでしょうか?私がそれで逃した何か他のものがありますか?私はそれが最小限の組織を必要とすることを理解しています(すべての戦略は何らかの組織を必要とします)が、それは機能します。