我很好奇如何删除git中的第一次提交。

做任何事情之前的修改是什么?这个修订版有名称或标签吗?


当前回答

在第一次提交之前什么都没有,因为每次提交都引用父提交。这使得第一次提交非常特殊(孤儿提交),因此没有办法引用前一个“状态”。

所以如果你想修复提交,你可以简单地git commit——amend:这将修改提交而不创建另一个。

如果你只是想从头开始,删除.git存储库,并使用git init创建另一个

其他回答

对我来说,最安全的方法是使用update-ref命令:

git update-ref -d HEAD

它将删除命名的引用HEAD,因此它将重置(轻轻地,你不会丢失你的工作)你当前分支的所有提交。

如果你想合并第一次提交和第二次提交,你可以使用rebase命令:

git rebase -i --root

最后一种方法是创建一个孤儿分支,一个具有相同内容但没有任何提交历史的分支,并在其上提交你的新内容:

git checkout --orphan <new-branch-name>

在第一次提交之前什么都没有,因为每次提交都引用父提交。这使得第一次提交非常特殊(孤儿提交),因此没有办法引用前一个“状态”。

所以如果你想修复提交,你可以简单地git commit——amend:这将修改提交而不创建另一个。

如果你只是想从头开始,删除.git存储库,并使用git init创建另一个

我正在寻找一种方法来撤销所有的git提交从一个回购,就像他们从来没有发生过。

调整基准在一定程度上会起作用。但是,第一次(按时间顺序来看,最早的git提交)总是会有问题,因为它没有父节点,所以会出错。

这些答案都不能完全解决我的问题。但经过大量的搜索和试错,我发现这个工作!

git update-ref -d HEAD
git push origin master -f

希望这对你有所帮助。祝你有愉快的一天。

# Check out to a temporary branch:
git checkout --orphan TEMP_BRANCH

# Add all the files:
git add -A

# Commit the changes:
git commit -am "Initial commit"

# Delete the old branch:
git branch -D master

# Rename the temporary branch to master:
git branch -m master

# Finally, force update to our repository:
git push -f origin master

如果你只是提交了它,但没有推送它,那么只需删除。git目录并再次init git…