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

后端 未结 3 584
日久生厌
日久生厌 2020-11-30 16:09

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.

相关标签:
3条回答
  • 2020-11-30 16:36

    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
      
    0 讨论(0)
  • 2020-11-30 16:44

    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>
    
    0 讨论(0)
  • 2020-11-30 16:44

    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!

    0 讨论(0)
提交回复
热议问题