Here is a good way to think about Git:

  * Subversion (or Perforce) stores changes but make you think about files.
    * Conceptually, it's a tree of files.
  * Git stores files but makes you think about changes.
    * Conceptually, it's a tree of deltas (like UNIX patch-files).



When you rebase, you are re-applying (or even re-ordering) the deltas elsewhere 
in the tree. A "merge-commit" resolves 2 lines of deltas into a bi-directional 
delta.

Reply via email to