简体   繁体   中英

Git: How to reset a remote Git repository to remove all commits?

How can I reset a remote and local Git repository to remove all commits?

I would like to start fresh with the current Head as the initial commit.

Completely reset?

  1. Delete the .git directory locally.

  2. Recreate the 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

First, follow the instructions in this question to squash everything to a single commit. Then make a forced push to the remote:

$ git push origin +master

And optionally delete all other branches both locally and remotely:

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

Were I you I would do something like this:

Before doing anything please keep a copy (better safe than sorry)

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

After doing that you can delete other branches.

Result: You are going to have a branch with only 2 commits.

Use git log --oneline to see your commits in a minimalistic way and to find SHA-1 for commits!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM