
Sometimes, when we work on a Tutorial, we want to wipe out our Project repository on GitHub and restart. Doing it from command line is easy and fast.
Let's say your username on GitHub is "username
" and you want to reset the project "my-project
". Open a console and do the following:
Delete your current project
$ ls -a
. .. my-project
$ rm -rf my-project
âš Performing rm -rf
from within your project directory will not work as it does not remove the hidden files and directories.
Reinitialize an empty Git Repository
$ mkdir my-project
$ cd my-project
my-project$ git init
Initialized empty Git repository in /home/username/projects/my-project/.git/
my-project$ git status
On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)
Link to GitHub
my-project$ git remote add origin git@github.com:username/my-project.git
my-project$ git remote -v
origin git@github.com:username/my-project.git (fetch)
origin git@github.com:username/my-project.git (push)
Force PUSH the new Repository
my-project$ touch README.md # 🅰
my-project$ git add .
my-project$ git commit -m "Initial commit"
[master (root-commit) b17b424] Initial commit
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 README.md
my-project$ git push -uf origin master # 🅱
Counting objects: 3, done.
Writing objects: 100% (3/3), 213 bytes | 213.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:username/my-project.git
+ ed755d5...b17b424 master -> master (forced update)
Branch master set up to track remote branch master from origin.
A few remarks:
🅰 You have to commit at least one file before you can push your repository to Git.
🅱 The flags we use when pushing are to force the reset of our repository on GitHub (-f
) and to set the remote origin
as default (-u
). After you run this comment, you will be able to push using just git push
.
Bash script
If you reset repositories a lot, you may want to create a bash script for this:
We deliberately didn't include the deletion (rm -rf $repository
) inside the bash script considering this to be too dangerous.
So, after you change the execution permission on the script (chmod +x reset_git.sh
) you may run it as:
$ rm -rf my-project
$ ./reset_git.sh
GitHub Repository Reset
GitHub username?
username
GitHub repository?
my-project
Initialized empty Git repository in /home/username/my-project/.git/
[master (root-commit) 8d7d600] Initial commit
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 README.md
Counting objects: 3, done.
Writing objects: 100% (3/3), 214 bytes | 214.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:username/my-project.git
+ 479bc7e...8d7d600 master -> master (forced update)
Branch master set up to track remote branch master from origin.
Repository my-project for User username has been reset!