<p>I am trying to figure out what is the 'grafts' in the Git.</p>

<p>For example, in one of the latest comments <a href="http://web.archive.org/web/20080930112610/http://log.emmanuelebassi.net/archives/2007/09/when-the-levee-breaks/" rel="noreferrer">here</a>, Tobu suppose to use <b>git-filter-branch</b> and <b>.git/info/grafts</b> to join two repositories.</p>

<p>But I don't understand why I need these <em>grafts</em>? It seems, that all work without last two commands.</p>

From
Git Wiki
:
Graft points or grafts enable two
  otherwise different lines of
  development to be joined together. It
  works by letting users record fake
  ancestry information for commits. This
  way you can make git pretend the set
  of parents a commit has is different
  from what was recorded when the commit
  was created.
Reasons for Using Grafts
Grafts can be useful when moving
  development to git, since it allows
  you to make cloning of the old history
  imported from another SCM optional.
  This keeps the initial clone for users
  who just wants to follow the latest
  version down while developers can have
  the full development history
  available.
When Linus started using git for
  maintaining his kernel tree there
  didn't exist any tools to convert the
  old kernel history. Later, when the
  old kernel history was imported into
  git from the bkcvs gateway, grafts was
  created as a method for making it
  possible to tie the two different
  repositories together.