我的问题是我更改了一个文件,例如:README,添加了新行 “ this for my test line ” 并保存了文件,然后发出了以下命令
git status
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: README
#
no changes added to commit (use "git add" and/or "git commit -a")
git add README
git commit -a -m 'To add new line to readme'
我没有将代码推送到 github,现在我想取消此提交。
为此,我用了
git reset --hard HEAD~1
但是我从 README 文件中丢失了新添加的行 “ this for my test line”。这不应该发生。我需要那里的内容。有没有办法保留内容并取消我的本地提交?
只需使用不带--hard
标志的git reset
git reset HEAD~1
PS:在基于 Unix 的系统上,您可以使用HEAD^
,它等于HEAD~1
。在 Windows 上, HEAD^
将不起作用,因为^
表示行继续。所以您的命令提示符只会问您More?
。
使用--soft
代替--hard
标志:
git reset --soft HEAD^