如何在git中删除第一个提交?

我很好奇如何在git中删除第一个提交。

做任何事情之前的修改是什么? 这个版本是否有名字或标签?

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

 git update-ref -d HEAD 

它将删除指定的引用HEAD ,所以它会重置(轻轻地,你不会失去你的工作)你当前分支的所有提交

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

 git rebase -i --root 

最后一种方法是创build一个孤立分支,一个分支,但是没有任何提交历史,并且提交新的内容:

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

在第一次提交之前什么都没有,因为每个提交都指向一个父提交。 这使得第一个提交特别(孤儿提交),所以没有办法引用以前的“状态”。

所以,如果你想解决提交,你可以简单地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/

你可以做的另一个方法是:

  1. 签出到你想保留的分支(比如dev) git checkout dev
  2. 现在,删除你想重置的git branch -D master
  3. 现在,创build一个同名的空分支git checkout --orphan master

当然,所有这些都取决于你的用例,但如果你有多个分支,删除.git目录是没有意义的。

检查一个临时分支:

git checkout –orphan TEMP_BRANCH

添加所有文件:

git add -A

提交更改:

git commit -am“初始提交”

删除旧分支:

git分支-D主

将临时分支重命名为master:

git分支-m主

最后强制更新我们的仓库:

git push -f原点大师