reset doesn't reset a revert?
From: Octavian Râşniţă <hidden>
Date: 2016-08-13 23:25:03
Hi, Under Windows XP, using git version 1.6.4.msysgit.0, I have tried: E:\lucru\git\k>echo foo > file.txt E:\lucru\git\k>echo bar >> file.txt E:\lucru\git\k>git init Initialized empty Git repository in E:/lucru/git/k/.git/ E:\lucru\git\k>git add . warning: CRLF will be replaced by LF in file.txt. E:\lucru\git\k>git commit -a [master (root-commit) e969cd5] First commit warning: CRLF will be replaced by LF in file.txt. 1 files changed, 2 insertions(+), 0 deletions(-) create mode 100644 file.txt E:\lucru\git\k>echo baz >> file.txt E:\lucru\git\k>git commit -a warning: CRLF will be replaced by LF in file.txt. warning: CRLF will be replaced by LF in file.txt. [master warning: CRLF will be replaced by LF in file.txt. fabd2f2] Added baz to file.txt 1 files changed, 1 insertions(+), 0 deletions(-) E:\lucru\git\k>type file.txt foo bar baz #Until here, everything's OK. 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. 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. E:\lucru\git\k>git status # On branch master nothing to commit (working directory clean) 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) #It seems that the revert commit was added successfully. E:\lucru\git\k>type file.txt foo bar #And it seems that not only the repository was changed, but the working directory also. Is it correct? #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? 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)? E:\lucru\git\k>type file.txt foo bar #However, git reset modified just the repository and not the working directory. 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. Is this something normal I should expect, or I am doing something wrong? Thank you very much. Octavian