From: Junio C Hamano <junkio@cox.net>
To: Morten Welinder <mwelinder@gmail.com>
Cc: Linus Torvalds <torvalds@osdl.org>,
Don Zickus <dzickus@gmail.com>,
git@vger.kernel.org
Subject: Re: bad git pull
Date: Fri, 16 Dec 2005 18:19:09 -0800 [thread overview]
Message-ID: <7vlkykbh42.fsf@assigned-by-dhcp.cox.net> (raw)
In-Reply-To: <118833cc0512161637v1d180f9fh66a7dc6d3fe11d2b@mail.gmail.com> (Morten Welinder's message of "Fri, 16 Dec 2005 19:37:18 -0500")
Morten Welinder <mwelinder@gmail.com> writes:
>> - undo the last commit entirely ("hard reset to previous state"):
>>
>> - undo the last pull ("bk unpull"): "hard reset to ORIG_HEAD":
>
> It would be outright peachy if Documentation/git-commit.txt and
> Documentation/git-pull.txt mentioned these. That is certainly
> where I would look first to answer the "what if I screwed up?"
> question.
Yup. Maybe one line comment at the bottom of these manual pages
pointing at git-reset manual page (which has nice examples
section) would be good enough?
-- >8 --
[PATCH] Examples of resetting.
Morten Welinder says examples of resetting is really about
recovering from botched commit/pulls. I agree that pointers
from commands that cause a reset to be needed in the first place
would be very helpful.
Also reset examples did not mention "pull/merge" cases.
Signed-off-by: Junio C Hamano <junkio@cox.net>
---
diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt
index b92cf48..8b91f22 100644
--- a/Documentation/git-commit.txt
+++ b/Documentation/git-commit.txt
@@ -66,6 +66,10 @@ OPTIONS
Update specified paths in the index file before committing.
+If you make a commit and then found a mistake immediately after
+that, you can recover from it with gitlink:git-reset[1].
+
+
Author
------
Written by Linus Torvalds <torvalds@osdl.org> and
diff --git a/Documentation/git-merge.txt b/Documentation/git-merge.txt
index 0cac563..4ce799b 100644
--- a/Documentation/git-merge.txt
+++ b/Documentation/git-merge.txt
@@ -37,6 +37,11 @@ include::merge-options.txt[]
include::merge-strategies.txt[]
+If you tried a merge which resulted in a complex conflicts and
+would want to start over, you can recover with
+gitlink:git-reset[1].
+
+
HOW MERGE WORKS
---------------
diff --git a/Documentation/git-pull.txt b/Documentation/git-pull.txt
index c65ca9a..3a7d385 100644
--- a/Documentation/git-pull.txt
+++ b/Documentation/git-pull.txt
@@ -104,6 +104,11 @@ merge the remote `origin` head into the
local `master` branch.
+If you tried a pull which resulted in a complex conflicts and
+would want to start over, you can recover with
+gitlink:git-reset[1].
+
+
SEE ALSO
--------
gitlink:git-fetch[1], gitlink:git-merge[1]
diff --git a/Documentation/git-reset.txt b/Documentation/git-reset.txt
index 0204891..c6a269b 100644
--- a/Documentation/git-reset.txt
+++ b/Documentation/git-reset.txt
@@ -111,6 +111,39 @@ remain there.
changes still in the working tree.
------------
+Undo a merge or pull::
++
+------------
+$ git pull <1>
+Trying really trivial in-index merge...
+fatal: Merge requires file-level merging
+Nope.
+...
+Auto-merging nitfol
+CONFLICT (content): Merge conflict in nitfol
+Automatic merge failed/prevented; fix up by hand
+$ git reset --hard <2>
+
+<1> try to update from the upstream resulted in a lot of
+conflicts; you were not ready to spend a lot of time merging
+right now, so you decide to do that later.
+<2> "pull" has not made merge commit, so "git reset --hard"
+which is a synonym for "git reset --hard HEAD" clears the mess
+from the index file and the working tree.
+
+$ git pull . topic/branch <3>
+Updating from 41223... to 13134...
+Fast forward
+$ git reset --hard ORIG_HEAD <4>
+
+<3> merge a topic branch into the current branch, which resulted
+in a fast forward.
+<4> but you decided that the topic branch is not ready for public
+consumption yet. "pull" or "merge" always leaves the original
+tip of the current branch in ORIG_HEAD, so resetting hard to it
+brings your index file and the working tree back to that state,
+and resets the tip of the branch to that commit.
+------------
Author
------
prev parent reply other threads:[~2005-12-17 2:19 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-12-15 23:37 bad git pull Don Zickus
2005-12-15 23:42 ` Junio C Hamano
2005-12-15 23:53 ` Junio C Hamano
2005-12-16 15:39 ` Don Zickus
2005-12-16 17:40 ` Junio C Hamano
2005-12-16 17:25 ` Carl Baldwin
2005-12-16 19:20 ` Junio C Hamano
2005-12-16 18:07 ` Morten Welinder
2005-12-16 19:21 ` Junio C Hamano
2005-12-16 22:12 ` Linus Torvalds
2005-12-17 0:37 ` Morten Welinder
2005-12-17 1:05 ` Linus Torvalds
2005-12-17 1:49 ` Junio C Hamano
2005-12-17 7:44 ` Linus Torvalds
2005-12-17 9:28 ` Junio C Hamano
2005-12-17 21:04 ` Nicolas Pitre
2005-12-18 3:02 ` Junio C Hamano
2005-12-18 4:17 ` Nicolas Pitre
2005-12-18 6:31 ` Linus Torvalds
2005-12-18 7:15 ` Junio C Hamano
2005-12-18 17:16 ` Nicolas Pitre
2005-12-17 2:19 ` Junio C Hamano [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7vlkykbh42.fsf@assigned-by-dhcp.cox.net \
--to=junkio@cox.net \
--cc=dzickus@gmail.com \
--cc=git@vger.kernel.org \
--cc=mwelinder@gmail.com \
--cc=torvalds@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).