3 ms·
How the hell is it mysterious? It is just cherry-picking the commits then setting the branch pointer. Merge is the evil one because you can hide any changes y
by Am4TIfIsER0ppos 4y ago
How the hell is it mysterious? It is just cherry-picking the commits then setting the branch pointer. Merge is the evil one because you can hide any changes you like in the commit.
- solardev 4y agoWhat does this mean?
- seba_dos1 4y agoMerge commit is just a regular commit that happens to have multiple parent commits - it doesn't have to match the state of its parent commits at all. However, you usually use `git merge` in order to create a commit that does in fact match the state of its parent commits, so some people (and even some UIs) don't expect it to diverge over regular conflict resolution - which is why it's easy to "hide" changes there that don't appear in any dedicated non-merge commit.
- Am4TIfIsER0ppos 4y agoYes. When you "resolve" "conflicts" you can add any changes you like. This means reading it you need to understand ++ -- +- -+ or to compare it to both parents and their parents to see what exactly was added. For example I recently had to do something with ffmpeg commit 522f87708653af3badcdc33be983bcc6009de49b which basically rewrites the code it is supposed to be merging. Fortunately for that commit it makes most sense to only compare it with its first parent. Things like that make me strongly prefer rebase.