<?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: Git: You are in the middle of a conflicted merge.</title>
	<atom:link href="http://anarchogeek.com/2008/08/01/git-you-are-in-the-middle-of-a-conflicted-merge/feed/" rel="self" type="application/rss+xml" />
	<link>http://anarchogeek.com/2008/08/01/git-you-are-in-the-middle-of-a-conflicted-merge/</link>
	<description></description>
	<lastBuildDate>Wed, 02 May 2012 23:09:26 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: D. Spillman</title>
		<link>http://anarchogeek.com/2008/08/01/git-you-are-in-the-middle-of-a-conflicted-merge/comment-page-1/#comment-10377</link>
		<dc:creator>D. Spillman</dc:creator>
		<pubDate>Thu, 22 Mar 2012 04:59:14 +0000</pubDate>
		<guid isPermaLink="false">http://anarchogeek.com/2008/08/01/git-you-are-in-the-middle-of-a-conflicted-merge#comment-10377</guid>
		<description>If you have to explain the message, then it is a bad message. A better message is a better solution (in this instance).
Something like &quot;Git was unable to automatically merge your changes with the master&quot; would be better but this may still be unhelpful for some.
A better solution is to suggest available options to fix the problem.
For example:
Your options are:
1. Discard your local changes.
     To do this use:  git reset --hard
     then:  git pull
     then retype your changes.
2. Manually merge you changes.
     To do this use:  git mergetool
     then: git commit;  git pull; git push</description>
		<content:encoded><![CDATA[<p>If you have to explain the message, then it is a bad message. A better message is a better solution (in this instance).<br />
Something like &#8220;Git was unable to automatically merge your changes with the master&#8221; would be better but this may still be unhelpful for some.<br />
A better solution is to suggest available options to fix the problem.<br />
For example:<br />
Your options are:<br />
1. Discard your local changes.<br />
     To do this use:  git reset &#8211;hard<br />
     then:  git pull<br />
     then retype your changes.<br />
2. Manually merge you changes.<br />
     To do this use:  git mergetool<br />
     then: git commit;  git pull; git push</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ha$H</title>
		<link>http://anarchogeek.com/2008/08/01/git-you-are-in-the-middle-of-a-conflicted-merge/comment-page-1/#comment-2069</link>
		<dc:creator>Ha$H</dc:creator>
		<pubDate>Tue, 15 Mar 2011 14:55:15 +0000</pubDate>
		<guid isPermaLink="false">http://anarchogeek.com/2008/08/01/git-you-are-in-the-middle-of-a-conflicted-merge#comment-2069</guid>
		<description>Thank you, thank you, thank you so much :) Very useful article.</description>
		<content:encoded><![CDATA[<p>Thank you, thank you, thank you so much <img src='http://anarchogeek.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Very useful article.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron Newton</title>
		<link>http://anarchogeek.com/2008/08/01/git-you-are-in-the-middle-of-a-conflicted-merge/comment-page-1/#comment-2054</link>
		<dc:creator>Aaron Newton</dc:creator>
		<pubDate>Wed, 13 Jan 2010 16:36:00 +0000</pubDate>
		<guid isPermaLink="false">http://anarchogeek.com/2008/08/01/git-you-are-in-the-middle-of-a-conflicted-merge#comment-2054</guid>
		<description>If you have your diff editor configured you can just type &quot;git mergetool&quot; and it&#039;ll open the first conflicted file in that editor (you don&#039;t even have to paste in the path; it just does the first one). On OSX, it throws it to FileMerge, which 90% of the time is all I need.

When you&#039;re done and save your file, close the editor (close it entirely, not just the window) and go back to your shell. The editor will have exited and the terminal should have moved on to the next file, hit enter and it launches again, repeat.

When you&#039;re done continue with your steps above (add them, commit them). You&#039;ll likely have some .orig files to clean up, but that&#039;s usually not that tough.</description>
		<content:encoded><![CDATA[<p>If you have your diff editor configured you can just type &#8220;git mergetool&#8221; and it&#8217;ll open the first conflicted file in that editor (you don&#8217;t even have to paste in the path; it just does the first one). On OSX, it throws it to FileMerge, which 90% of the time is all I need.</p>
<p>When you&#8217;re done and save your file, close the editor (close it entirely, not just the window) and go back to your shell. The editor will have exited and the terminal should have moved on to the next file, hit enter and it launches again, repeat.</p>
<p>When you&#8217;re done continue with your steps above (add them, commit them). You&#8217;ll likely have some .orig files to clean up, but that&#8217;s usually not that tough.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: William Brown</title>
		<link>http://anarchogeek.com/2008/08/01/git-you-are-in-the-middle-of-a-conflicted-merge/comment-page-1/#comment-2050</link>
		<dc:creator>William Brown</dc:creator>
		<pubDate>Sat, 02 Jan 2010 03:53:06 +0000</pubDate>
		<guid isPermaLink="false">http://anarchogeek.com/2008/08/01/git-you-are-in-the-middle-of-a-conflicted-merge#comment-2050</guid>
		<description>I understand the frustration that it doesn&#039;t &quot;just work&quot;, but what exactly do you expect it to do?  You asked git to merge, it tried, but it couldn&#039;t figure out the correct merge automatically.

So it gives you the same working directory file containing conflict markers that CVS or SVN do (I like to enable &quot;merge.conflictsyle=diff3&quot;), and, in addition, three original versions (both merge heads plus the common ancestor) in the index.

Basically, the final fallback merge algorithm is &quot;stop and ask the user what to do&quot;.

And then it avoids doing any *more* damage until the unfinished merge situation is resolved somehow.  Anyone who&#039;s accidentally checked a file *with* conflict markers into CVS will tell you how handy that safety feature is.

You can always abandon the merge with &quot;git reset --hard&quot; and try again later.

You can add cleverer and cleverer merge heuristics, but you can&#039;t find one that will *always* do the right thing, so you will always need a manual fallback.  I mean, if branch A refactored function foo() one way and branch B did it a different way, there&#039;s no way for software to do that automatically.

(In fact, Linus has specifically avoided such cleverness because it carries with it an unpleasant risk of quietly doing the *wrong* thing.)

But I&#039;m unclear on what better solution you expect.</description>
		<content:encoded><![CDATA[<p>I understand the frustration that it doesn&#8217;t &#8220;just work&#8221;, but what exactly do you expect it to do?  You asked git to merge, it tried, but it couldn&#8217;t figure out the correct merge automatically.</p>
<p>So it gives you the same working directory file containing conflict markers that CVS or SVN do (I like to enable &#8220;merge.conflictsyle=diff3&#8243;), and, in addition, three original versions (both merge heads plus the common ancestor) in the index.</p>
<p>Basically, the final fallback merge algorithm is &#8220;stop and ask the user what to do&#8221;.</p>
<p>And then it avoids doing any *more* damage until the unfinished merge situation is resolved somehow.  Anyone who&#8217;s accidentally checked a file *with* conflict markers into CVS will tell you how handy that safety feature is.</p>
<p>You can always abandon the merge with &#8220;git reset &#8211;hard&#8221; and try again later.</p>
<p>You can add cleverer and cleverer merge heuristics, but you can&#8217;t find one that will *always* do the right thing, so you will always need a manual fallback.  I mean, if branch A refactored function foo() one way and branch B did it a different way, there&#8217;s no way for software to do that automatically.</p>
<p>(In fact, Linus has specifically avoided such cleverness because it carries with it an unpleasant risk of quietly doing the *wrong* thing.)</p>
<p>But I&#8217;m unclear on what better solution you expect.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

