Ama*_*r S 696 git git-reset git-commit
我的问题是我已经更改了一个文件,例如:README,为我的测试行添加了一行新的'并保存了该文件,然后我发出了以下命令
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'
Run Code Online (Sandbox Code Playgroud)
我没有将代码推送到github,现在我想取消这个提交.
为此我用过
git reset --hard HEAD~1
Run Code Online (Sandbox Code Playgroud)
但是我从README文件中丢失了新添加的" 这个用于我的测试行 ".这不应该发生.我需要内容.有没有办法保留内容并取消我的本地提交?
Kor*_*tor 1329
只需使用git reset
没有--hard
标志:
git reset HEAD~1
Run Code Online (Sandbox Code Playgroud)
PS:在基于Unix的系统上,您可以使用HEAD^
等于的系统HEAD~1
.在Windows HEAD^
上将无法工作,因为^
信号表示行继续.所以你的命令提示符只会问你More?
.
小智 175
使用--soft
而不是--hard
标志:
git reset --soft HEAD^
Run Code Online (Sandbox Code Playgroud)
ino*_*tia 29
如果您正处于提交的中间(即已在编辑器中),则可以通过删除第一个上方的所有行来取消它#
.这将中止提交.
因此,您可以删除所有行,以便提交消息为空,然后保存文件:
然后,您将收到一条消息Aborting commit due to empty commit message.
.
编辑:
您也可以删除所有行,结果将完全相同.
要删除vim中的所有行(如果这是您的默认编辑器),一旦进入编辑器,键入gg
以转到第一行,然后dG
删除所有行.最后,写入并退出文件,wq
您的提交将被中止.
mis*_*don 15
您应该做的第一件事是在删除提交消息之前确定是否要保留本地更改。
使用git log
显示当前提交信息,然后找到了commit_id
之前的承诺,你要删除,而不是要删除提交。
git reset --soft commit_id
git reset --hard commit_id
这就是区别软及硬
小智 8
使用以下命令:
$ git reset HEAD~1
Run Code Online (Sandbox Code Playgroud)
之后,您还可以查看恢复的文件,如下所示。
Unstaged changes after reset:
M application/config/config.php
M application/config/database.php
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
730134 次 |
最近记录: |