<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Rebase v Merge in Git</title>
	<atom:link href="http://gitguru.com/2009/02/03/rebase-v-merge-in-git/feed/" rel="self" type="application/rss+xml" />
	<link>http://gitguru.com/2009/02/03/rebase-v-merge-in-git/</link>
	<description>meditations on scm using git</description>
	<lastBuildDate>Sat, 06 Mar 2010 13:29:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Shoo</title>
		<link>http://gitguru.com/2009/02/03/rebase-v-merge-in-git/comment-page-1/#comment-43</link>
		<dc:creator>Shoo</dc:creator>
		<pubDate>Mon, 15 Feb 2010 13:05:54 +0000</pubDate>
		<guid isPermaLink="false">http://gitguru.com/?p=22#comment-43</guid>
		<description>And if I may add another difference: rebase will refuse (by default) to work if you have modified files in your worktree, thus attempting to goad you into having a clean up-to-date worktree (or at least stashing the local changes) before you pull the other mods. This is usually a good idea.

(This only regards files that would be touched by the commits you&#039;re about to pull. It doesn&#039;t care about modified files that have nothing to do with those mods.)</description>
		<content:encoded><![CDATA[<p>And if I may add another difference: rebase will refuse (by default) to work if you have modified files in your worktree, thus attempting to goad you into having a clean up-to-date worktree (or at least stashing the local changes) before you pull the other mods. This is usually a good idea.</p>
<p>(This only regards files that would be touched by the commits you&#8217;re about to pull. It doesn&#8217;t care about modified files that have nothing to do with those mods.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Harjit</title>
		<link>http://gitguru.com/2009/02/03/rebase-v-merge-in-git/comment-page-1/#comment-34</link>
		<dc:creator>Harjit</dc:creator>
		<pubDate>Thu, 20 Aug 2009 21:47:06 +0000</pubDate>
		<guid isPermaLink="false">http://gitguru.com/?p=22#comment-34</guid>
		<description>What rebase really says is, to consider the changes that are about to made to the branch, FIRST get the changes that others have already COMMITED to the branch, and then re-apply changes on top of that, irrespective of when the changes were made. This allows you to get what others before you have already commited, and shows you where your changes cause merge conflicts. Also it makes the merge upwards more meaningful, since you would normally resolve conflicts caused by your changes to previously commited changes, before merging and pushing.</description>
		<content:encoded><![CDATA[<p>What rebase really says is, to consider the changes that are about to made to the branch, FIRST get the changes that others have already COMMITED to the branch, and then re-apply changes on top of that, irrespective of when the changes were made. This allows you to get what others before you have already commited, and shows you where your changes cause merge conflicts. Also it makes the merge upwards more meaningful, since you would normally resolve conflicts caused by your changes to previously commited changes, before merging and pushing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marc</title>
		<link>http://gitguru.com/2009/02/03/rebase-v-merge-in-git/comment-page-1/#comment-33</link>
		<dc:creator>Marc</dc:creator>
		<pubDate>Thu, 02 Jul 2009 18:26:09 +0000</pubDate>
		<guid isPermaLink="false">http://gitguru.com/?p=22#comment-33</guid>
		<description>Does rebase make the comparison between  the two branches faster?</description>
		<content:encoded><![CDATA[<p>Does rebase make the comparison between  the two branches faster?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: long</title>
		<link>http://gitguru.com/2009/02/03/rebase-v-merge-in-git/comment-page-1/#comment-4</link>
		<dc:creator>long</dc:creator>
		<pubDate>Thu, 05 Feb 2009 02:49:24 +0000</pubDate>
		<guid isPermaLink="false">http://gitguru.com/?p=22#comment-4</guid>
		<description>I&#039;ve taken some liberties with the notation.  

A is the set of commits (a1, a2, a3...) on branch A.
B is the set of commits (b1, b2, b3...) on branch B that were added after this branch was created based on branch A.

A&#039; is the set of new commits (a&#039;1, a&#039;2...) on branch A that need to be added to branch B via a merge or rebase.

So before the merge or rebase, the current configuration of the branches are

Branch A: A + A&#039; (original set of commits and new set of commits) = a1 + a2 + a3 + ... + a&#039;1 + a&#039;2 +....
Branch B: A + B (original set of commits from branch A and set of commits on branch B) = a1 + a2 + a3 + ... + b1 + b2 + b3 + ...

When I talk about the merge from branch A onto branch B, the addition of the sets of commits is

A + B + A&#039; = a1 + a2 + a3 + ... + b1 + b2 + b3 + ... + a&#039;1 + a&#039;2 + ...

The order is important: You start with the original commits on branch A.  The commits on branch B are added on top of those commits.  And finally the new commits from branch A are added on top of those.

You can also view &quot;A + B&quot; as the code that you see in the directory that is the end result of the set of commits A and B.  Which is why I have the first statement:

A + B + A&#039; = A + A&#039; + B

Whether you choose a rebase or a merge, the final code that you see should be the same.  However, the order of individual commits that go into are different.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve taken some liberties with the notation.  </p>
<p>A is the set of commits (a1, a2, a3&#8230;) on branch A.<br />
B is the set of commits (b1, b2, b3&#8230;) on branch B that were added after this branch was created based on branch A.</p>
<p>A&#8217; is the set of new commits (a&#8217;1, a&#8217;2&#8230;) on branch A that need to be added to branch B via a merge or rebase.</p>
<p>So before the merge or rebase, the current configuration of the branches are</p>
<p>Branch A: A + A&#8217; (original set of commits and new set of commits) = a1 + a2 + a3 + &#8230; + a&#8217;1 + a&#8217;2 +&#8230;.<br />
Branch B: A + B (original set of commits from branch A and set of commits on branch B) = a1 + a2 + a3 + &#8230; + b1 + b2 + b3 + &#8230;</p>
<p>When I talk about the merge from branch A onto branch B, the addition of the sets of commits is</p>
<p>A + B + A&#8217; = a1 + a2 + a3 + &#8230; + b1 + b2 + b3 + &#8230; + a&#8217;1 + a&#8217;2 + &#8230;</p>
<p>The order is important: You start with the original commits on branch A.  The commits on branch B are added on top of those commits.  And finally the new commits from branch A are added on top of those.</p>
<p>You can also view &#8220;A + B&#8221; as the code that you see in the directory that is the end result of the set of commits A and B.  Which is why I have the first statement:</p>
<p>A + B + A&#8217; = A + A&#8217; + B</p>
<p>Whether you choose a rebase or a merge, the final code that you see should be the same.  However, the order of individual commits that go into are different.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joseph</title>
		<link>http://gitguru.com/2009/02/03/rebase-v-merge-in-git/comment-page-1/#comment-3</link>
		<dc:creator>Joseph</dc:creator>
		<pubDate>Wed, 04 Feb 2009 06:29:34 +0000</pubDate>
		<guid isPermaLink="false">http://gitguru.com/?p=22#comment-3</guid>
		<description>I really would like to understand this, but I don&#039;t understand the notation.</description>
		<content:encoded><![CDATA[<p>I really would like to understand this, but I don&#8217;t understand the notation.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
