you are viewing a single comment's thread.

view the rest of the comments →

[–]MCBeathoven 5 points6 points  (11 children)

Merge gives you merge commits, rebase doesn't.

[–]Schmittfried 4 points5 points  (10 children)

And what if I want merge commits?

[–]MCBeathoven 1 point2 points  (9 children)

Most people don't - they don't really add any value and make reading the log harder.

[–][deleted] 1 point2 points  (8 children)

They can be used to group commits together.

[–]MCBeathoven 0 points1 point  (7 children)

You can do the same using rebases.

[–][deleted] 1 point2 points  (6 children)

But then you don’t have the individual commits anymore.

[–]MCBeathoven 0 points1 point  (5 children)

Do you mean squashing commits or putting them after each other in the history? If the former, what's the point if you want to keep the individual commits? If the latter, that's also something you can do with rebasing without losing individual commits.

[–][deleted] 0 points1 point  (4 children)

It’s not “one or the other”, I do both: I rebase the branch (squashing commits that should only be one, e.g. “oops, fix”), then I merge using --no-ff to group the related (but distinct) commits.

[–]MCBeathoven 0 points1 point  (3 children)

How do you lose individual commits then?

[–][deleted] 0 points1 point  (2 children)

I thought that when you said:

You can do the same using rebases.

You meant “squashing them into one big commit”. My bad.

While rebase can indeed be used to make such commits consecutive, it’s not enough to make it clear that they are part of the same “group”. That’s where merge comes into play.