Git: 如何重置远程 Git 存储库以及删除所有提交?

如何重置远程和本地Git存储库以删除所有提交?

我想以当前的Head作为初始提交重新开始。

181346 次浏览
首先,按照这个问题中的说明将所有内容压缩到一次提交。 然后强制推到遥控器:

$ git push origin +master

并可选地删除本地和远程的所有其他分支:

$ git push origin :<branch>
$ git branch -d <branch>

完全重置吗?

  1. 在本地删除.git目录。

  2. 重新创建git repostory:

    $ cd (project-directory)
    $ git init
    $ (add some files)
    $ git add .
    $ git commit -m 'Initial commit'
    
  3. Push to remote server, overwriting. Remember you're going to mess everyone else up doing this … you better be the only client.

    $ git remote add origin <url>
    $ git push --force --set-upstream origin master
    

如果我是你,我会这样做:

在做任何事情之前,请保留一份副本(安全总比遗憾好)

git checkout master
git checkout -b temp
git reset --hard <sha-1 of your first commit>
git add .
git commit -m 'Squash all commits in single one'
git push origin temp

在此之后,您可以删除其他分支。

结果:您将拥有一个只有2个提交的分支。

使用git log --oneline以最简单的方式查看你的提交,并为提交找到SHA-1 !