How to undo a commit in freshly initialized repository (not pushed)
本问题已经有最佳答案,请猛点这里访问。
我初始化了一个repo,但现在想撤销第一个(并且只)提交。
由于新创建的repo指向一个尚不存在的ref,因此这三种取消提交所有错误的解决方案
所以我的问题是,我如何撤销尚未被推送的回购协议中的承诺,因此还没有得到REF?
注:我也试过,没有成功。
注意:从技术上讲,这不会撤消提交,但同样好的是,空存储库几乎没有功能。要真正清空存储库,请参阅下面的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $ git init Initialized empty Git repository in .../.git/ $ echo test changing root commit > README $ git add README $ git commit -m initial [master (root-commit) 90e83ae] initial 1 file changed, 1 insertion(+) create mode 100644 README $ echo different readme > README $ git add README $ git commit --amend --no-edit [master 8e159b1] initial Date: Sat Mar 2 21:00:53 2019 -0800 1 file changed, 1 insertion(+) create mode 100644 README $ git log --all --decorate --oneline --graph * 8e159b1 (HEAD -> master) initial |
请注意,"不同的自述"是这个新的根提交的内容:
1 2 3 4 5 6 7 8 9 | $ git show --pretty=oneline 8e159b1f0d397b31cb1be5168e77ba200269c62a (HEAD -> master) initial diff --git a/README b/README new file mode 100644 index 0000000..ef0411a --- /dev/null +++ b/README @@ -0,0 +1 @@ +different readme |
号
如果在新的根提交中有您不想要的文件,请使用
如果您真的想删除
工作树不受这个过程的干扰。
如果您只有一个要删除的提交,则只需删除记录提交日志ID的
但是,也许再次删除整个