このことを考慮:
* (master) Merge feature-branch into master
|\
| * (feature-branch) Fix a comment typo
| * Add comments
| * Add feature task 3
| * Consolidate feature tasks 1 and 2
| * Add feature task 2
| * Forgot a semi-colon
| * Add feature task 1
|/
* Older commit on master
対これ:
* (master, feature-branch) Add feature
* Older commit on master
feature-branch
最初のものはintoの (--no-ff) マージでmaster
、下は on のスカッシュ/リベースですfeature-branch
。master
1 つ目は非常に詳細で、これにより回帰テストがより焦点を絞ったものになりますが、機能ブランチが多数ある場合は面倒になります。2 つ目は、多数の機能がある場合に読みやすくなりますが、ブランチ定義が失われます。独自の方法は、プロジェクトのサイズ、チームのサイズなどによって異なります。
個人的には、このコミットの経験則を気にする人は誰でも構いません。たとえば、コメントのタイプミスを修正したなど、下流の誰も気にしません。rebase -i
通常、プッシュする前に、最初の例を次のように ( を使用して) 変換します。
* (master) Merge feature-branch into master
|\
| * (feature-branch) Add feature task 3
| * Add feature task 2
| * Add feature task 1
|/
* Older commit on master
ブランチ ヒストリの関連部分はまだ明らかで、残りは押しつぶされています。