from–:https://www.dovov.com/git-583.html
如何在GIT中删除第一个提交?
我很好奇如何在git中删除第一个提交。
做任何事情之前的修改是什么? 这个版本是否有名字或标签?
对我来说,最安全的方法是使用update-ref命令:
git update-ref -d HEAD
它将删除指定的引用HEAD ,所以它会重置(轻轻地,你不会失去你的工作)你当前分支的所有提交 。
如果你想要合并第一个提交和第二个提交,你可以使用rebase命令:
git rebase -i –root
最后一种方法是创build一个孤立分支,一个分支,但是没有任何提交历史,并且提交新的内容:
git checkout –orphan
在第一次提交之前什么都没有,因为每个提交都指向一个父提交。 这使得第一个提交特别(孤儿提交),所以没有办法引用以前的“状态”。
所以,如果你想解决提交,你可以简单地git commit –amend :这将修改提交而不创build另一个。
如果您只想从头开始,请删除.git存储库,然后使用git init创build另一个存储库
你可能只想编辑你的第一个提交(因为总是有一个在git仓库中的第一个提交)。 考虑使用git commit –amend –reset-author而不是通常的git commit –amend 。
如果你想保留其他分支,但是例如使主分支重新开始而没有其他分支的共同历史,一个安全的方法就是创build一个新的存储库,并将其中的内容推送到其他分支:
cd .. git init newrepo cd newrepo # make some initial commits git push ../oldrepo master:newmaster
这在旧版本库中创build了“newmaster”分支,其历史logging与任何其他分支不同。 当然,你也可以用`git push -f’来覆盖master。
如果你想销毁所有分支和所有现有的内容,那么只需运行rm -rf .git/ 。
你可以做的另一个方法是:
签出到你想保留的分支(比如dev) git checkout dev
现在,删除你想重置的git branch -D master
现在,创build一个同名的空分支git checkout –orphan master
当然,所有这些都取决于你的用例,但如果你有多个分支,删除.git目录是没有意义的。