Working with forks
Clone your fork to your local machine
$ git clone git@github.com:USERNAME/FORKED-PROJECT.git
Add ‘upstream’ repo to list of remotes
$ git remote add upstream https://github.com/UPSTREAM-USER/ORIGINAL-PROJECT.git
Fetch from upstream remote
$ git fetch upstream
Check out your fork's local master branch
$ git checkout master
Merge the changes from upstream/master into your local master branch
$ git merge upstream/master
Working with branches
Pushing to a remote
$ git push <REMOTENAME> <BRANCHNAME>
$ git push <REMOTENAME> HEAD:<BRANCHNAME>
Renaming branches
$ git push <REMOTENAME> <LOCALBRANCHNAME>:<REMOTEBRANCHNAME>
Deleting a remote branch
$ git push <REMOTENAME> :<BRANCHNAME>
Checkout a remote branch
$ git checkout -b <LOCALBRANCHNAME> <REMOTENAME>/<REMOTEBRANCHNAME>
Adding an existing project to GitHub
Initialize the local directory as a Git repository
$ git init
Add the files in your new local repository. This stages them for the first commit
$ git add .
Commit the files that you've staged in your local repository
$ git commit -m "First commit"
In Terminal, add the URL for the remote repository where your local repository will be pushed
$ git remote add origin remoteRepositoryURL
Push the changes in your local repository to GitHub
$ git push -u origin master
Delete commit history
Create orphan branch
$ git checkout --orphan temp_branch
Add files to branch
$ git add -A
$ git commit -m "First commit"
Delete master branch
$ git branch -D master
Rename current branch
$ git branch -m master
Push changes
$ git push -f origin master
see more: github help, GitHub-Forking