我很好奇如何删除git中的第一次提交。
做任何事情之前的修改是什么?这个修订版有名称或标签吗?
我很好奇如何删除git中的第一次提交。
做任何事情之前的修改是什么?这个修订版有名称或标签吗?
当前回答
在第一次提交之前什么都没有,因为每次提交都引用父提交。这使得第一次提交非常特殊(孤儿提交),因此没有办法引用前一个“状态”。
所以如果你想修复提交,你可以简单地git commit——amend:这将修改提交而不创建另一个。
如果你只是想从头开始,删除.git存储库,并使用git init创建另一个
其他回答
您可能只想编辑您的第一次提交(因为在git repo中总是有第一次提交)。考虑使用git commit——modify——reset-author而不是通常的git commit——modify。
# 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签出开发 现在,删除你想重置git分支-D master的分支 现在,创建一个具有相同名称的空分支git checkout—orphan master
当然,所有这些都取决于您的用例,但是如果您有多个分支,删除.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>