什么都没提交,调用git checkout后工作树干净

时间:2018-07-22 17:20:47

标签: git

我试图删除我的上一次提交。我认为git checkout后跟commit的哈希将用commit的代码替换我当前的代码。这不起作用,我现在收到一条消息,提示Nothing to commit, working tree clean。如何摆脱此消息并删除我的上一次提交?

2 个答案:

答案 0 :(得分:1)

通过执行git checkout <hash>,您进入了所谓的“分离头”状态,这简而言之意味着您现在不在任何分支上。如果您想返回常规分支,请执行以下操作:

git checkout <branch name>

(其中<branch name>可以是masterdevelophotfix中的任何一个-这实际上取决于您如何命名它们以及您用来管理开发/发布的流程循环...请尝试git branch --list以获取列表)。

之后,如果要删除上一次提交,可以执行以下操作:

git reset --hard HEAD~1

但请注意--hard开关,因为它将物理删除最近的提交,这基本上意味着它是不可恢复的(而且我真的不记得操作reflog是否会在这种情况下帮助恢复它。)

答案 1 :(得分:0)

您可能需要检查this StackOverflow question以获得更多详细信息,但这听起来像是仓库不了解您的本地分支。您需要使用以下方法来设置远程仓库:

git branch -u <upstream branch>

因此,如果您尝试推送至主分支,请使用

git branch -u origin/master