this post was submitted on 04 Apr 2024
1113 points (98.1% liked)

Programmer Humor

19817 readers
58 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 20 points 8 months ago* (last edited 8 months ago) (2 children)

Merge is taking all the code from the master branch and combining it with the task branch, resulting in a commit for just the merge itself.

Rebase is "re-basing" where your task branch was created from off the master branch. It essentially takes all the commits from master that happened since you branched, REWRITES THE HISTORY of your task branch by inserting those master branch commits before all your existing commits, and effectively makes your task branch look like it was branched yesterday instead of like 4 weeks ago. You changed where your task branch originated on the master. You moved its base.

Atlassian does a fantastic writeup on this.

[–] [email protected] 7 points 8 months ago (1 children)

So kinda like as if you had kept your branch synced the whole time?

[–] [email protected] 7 points 8 months ago* (last edited 8 months ago)

Kind of. Both merge and rebase result in the branches "synced up" but they do it in different ways.

Merge is making a batter for cookies, having a bowl for dry ingredients (task branch) and a bowl for wet ingredients, (master branch) making them separately and then just dumping the dry bowl into the wet bowl (merge).

Rebase is taking a time machine back to before you started mixing the dry ingredients, mix all the wet ingredients first then add the dry ones on top of that in the same bowl.

It's really hard to create an analogy for this.

[–] [email protected] 1 points 8 months ago* (last edited 8 months ago) (1 children)

So, with a merge you basically shuffle in the changes from both branches, but a rebase takes only the changes from one branch and puts it over the other? Edit: no. Read wrong. I should probably watch a vid about it or something

[–] [email protected] 2 points 8 months ago

It inserts the master changes before the task branch ones.