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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.