From: Adam Brewster <adambrewster@gmail.com>
To: "Octavian Râşniţă" <orasnita@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: reset doesn't reset a revert?
Date: Sun, 4 Oct 2009 14:37:55 -0400 [thread overview]
Message-ID: <c376da900910041137v6766de4u1419a8209751dcb9@mail.gmail.com> (raw)
In-Reply-To: <98300251CB1D46A0B635B4495138C3A7@teddy>
>
> E:\lucru\git\k>git revert HEAD~
> fatal: Cannot revert a root commit
>
> #Does anyone know what does this mean? So I've tried with HEAD^ instead.
>
Git revert isn't like svn revert. GIt revert creates a new commit off
of the HEAD that introduces a change that's the opposite of the change
introduced in the commit you specify. The first commit in a
repository doesn't introduce any change because there's no previous
commit.
Like it says, you can't revert the first commit in the history.
> E:\lucru\git\k>git revert HEAD^
> More?
> More?
> Finished one revert.
> [master 1beba20] Revert "Added baz to file.txt"
> 1 files changed, 0 insertions(+), 1 deletions(-)
>
> # What should I respond to the questions More?
> #I've seen that no matter what I type, it adds to the "HEAD" and tells that
> that commit can't be found, so I just pressed enter.
>
>
It seems the caret is special to the windows command prompt. I don't
know what it does, but a line of nonsense that ends in ^ causes the
More? More? response you described. Try quoting the argument so your
shell doesn't mangle it.
>
> #And it seems that not only the repository was changed, but the working
> directory also. Is it correct?
>
That's how revert usually works,
> #Well, now let's say I discovered that this new commit was an error and I
> want to reset it.
> #And I used HEAD^ because HEAD~ didn't work with revert.
>
> E:\lucru\git\k>git reset HEAD^
> More?
> More?
> E:\lucru\git\k>git log --pretty=format:"%s %h"
> WARNING: terminal is not fully functional
> Revert "Added baz to file.txt" 1beba20
> Added baz to file.txt fabd2f2
> First commit e969cd5
> (END)
>
> #Well, git reset didn't reset the latest commit.
> #Does anyone know why or what I am doing wrong?
>
I don't know what the ^ means, but I'm guessing it's not getting
passed to git. I'm guessing what you really did is `git reset HEAD`
which clears the index but doesn't undo any commits.
> E:\lucru\git\k>git status
> # On branch master
> nothing to commit (working directory clean)
> E:\lucru\git\k>git reset HEAD~
> file.txt: locally modified
> E:\lucru\git\k>git log --pretty=format:"%s %h"
> WARNING: terminal is not fully functional
> Added baz to file.txt fabd2f2
> First commit e969cd5
> (END)
>
> #This time git reset resetted the latest HEAD.
> #It seems that git reset wants the HEAD~ commit, while git revert wants the
> HEAD^ commit. Do you know why (or can I find an explanation for this
> somewhere)?
>
Windows' command shell sucks. I don't use it. I don't recommend it.
Try Cygwin. Or PuTTYcyg.
> E:\lucru\git\k>type file.txt
> foo
> bar
>
> #However, git reset modified just the repository and not the working
> directory.
>
git reset has three modes. --hard, --soft, and --mixed. If you
weren't using windows' shell you could type man git-reset to find out
about them. Try googling git reset. Basically git reset doesn't mess
with your working copy files unless you ask it to.
> I added the line baz in the file file.txt, commited this change and then
> reverted to the previous commit. This has also deleted the line "baz" from
> the file.
> Then I resetted the last commit (the revert), however the line "baz" didn't
> appear in the file.
>
Reset and revert are very different commands. Make sure you
understand the difference.
Adam
prev parent reply other threads:[~2009-10-04 18:39 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-04 12:18 reset doesn't reset a revert? Octavian Râşniţă
2009-10-04 18:37 ` Adam Brewster [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=c376da900910041137v6766de4u1419a8209751dcb9@mail.gmail.com \
--to=adambrewster@gmail.com \
--cc=git@vger.kernel.org \
--cc=orasnita@gmail.com \
/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).