git/list[1] front-page[2] threads[3] people[4] search[5] about
 

merge vs rebase: Is visualization in gitk the only problem?

From
Steffen Prohaska <prohaska@zib.de>
Date
Oct 27, 2007, 07:17 UTC
Message-ID
<8E86BDBA-A49A-49BB-8E00-8BF6DD7237E9@zib.de>

There are some discussions going on about merge vs. rebase. The suggestions by Dscho is to prefer rebase over merge in a CVS-style workflow.

Rebase has definitely benefits but not all of its details are obvious at a first glance. Tell a newbie to read the git rebase man page and explain what git reabase does and you know what I mean. Rebase definitely can help to create a cleaner history. But it rewrites history and therefore destroys information, for example information about the original code base a patch was developed against, or merge conflicts that were resolved. You also need to decide when to use rebase and when to use merge. So you need to make a choice.

Why not always use git merge?

Is the only problem of git merge that it might create loops in the history with potentially long running parallel lines that are insufficiently visualized in gitk?

If so, why not improve the visualization?

Or is there any other deficiency of always using merge and never using rebase that I don't see?

Obviously you can use git merge only if you want to have _all_ changes from the other branch. But this is often what you want. In a CVS-style workflow you want to merge all changes from the shared branch before pushing. Why going through the hassel of git rebase?

I'm aware that you can do other things with git rebase that cannot be achieved by using git merge. For example moving a topic branch to a different stable branch without merging all of the topic branch's history ("--onto" option). It is easy to explain that rebase has it's own value.

	Steffen
Next: David Symonds
Message 1 of 5 in “merge vs rebase: Is visualization in gitk the only problem?”
  1. Steffen ProhaskaOct 27, 2007
  2. David SymondsOct 27, 2007
  3. Steffen ProhaskaOct 27, 2007
  4. Johannes SchindelinOct 27, 2007
  5. Daniel BarkalowOct 27, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.