用于初始提交的git reset --soft HEAD^

8

请问有没有与 git reset --soft HEAD^ 等效的命令用于初始提交?我希望找到一个非常安全的单行命令,不会删除任何内容 :)

进一步说明:运行该命令后,我想让我费力添加的所有文件都在索引中,并准备好提交。

1个回答

10

正如您所发现的,使用git reset --soft HEAD^来进行首次提交并不起作用。

可行的方法是使用git update-ref -d HEAD

但是,如果只有一个分支和一个提交,直接删除.git目录并重新开始可能更容易。当然,只有在您知道自己在做什么时才应该这样做。


1
这也将完全抹掉git的历史记录,而且不清楚nzn在问题中是否要求这样做。 - David Z
正如我所提到的,我不想删除任何东西,并且进一步澄清:我希望在运行命令后将我费力添加到索引中的所有文件都添加进去。 - nzn
2
不,"没有什么可以失去"这句话绝对是错误的。你添加到 Git 中的任何内容仍然在仓库中,并且处于添加时的状态。如果你在工作树中对其进行了更改,删除.git目录将会丢失你添加的内容,也会丢失记录哪些内容与之前添加的内容不同。 - jthill
1
在我的情况下,我尝试运行 git rebase -i --root 并编辑第一个提交。但是第一个提交的文件不会返回到工作树中,因此我尝试了这个答案中的命令,突然间我的目录不再被识别为一个 git 仓库,尽管在仔细检查后 .git 文件夹仍然存在。 - Nick Manning
@NickManning:这个命令相当于 git reset --soft HEAD^,但是针对的是初始提交。它撤销了第一次提交,并将累积的内容添加回索引(即用于当您进行了第一次提交并想要撤销该提交,而不是撤销文件中的更改)。 - Fake Code Monkey Rashid
显示剩余9条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接