Cheat Sheet

Useful git commands


Move changes to another branch

git stash

# To create a new branch
git checkout -b correct-branch

# To use an existing branch...
# git checkout correct-branch

git stash pop

Discard local changes

git reset --hard origin/master
git pull origin master

Update parent branch

git checkout feature_abc
git checkout -b feature_def
# --> Someone changed something in feature_abc
git pull origin feature_abc


Git clone private repo

git clone


  • means and it is your username;

  • 123456 is your password;


Keeping a fork up to date

Clone your fork

git clone

Add remote from original repository in your forked repository.

cd into/cloned/fork-repo
git remote add upstream git://
git fetch upstream

Updating your fork from original repo to keep up with their changes.

git pull upstream master

Track forks

Manage credentials

Store credentials permanently

git config credential.helper store

Store credentials on cache

To avoid providing the same credentials every time, you may enable the Git credentials cache through the following command:

git config --global credential.helper cache

The default cache expiry timeout is 900 seconds (15 minutes) and can be changed with the --timeoutoption as follows:

git config --global credential.helper 'cache --timeout=300'

If you want the daemon to exit early, forgetting all cached credentials before their timeout, you can issue an exit action:

git credential-cache exit


Remove submodule

mv a/submodule a/submodule_tmp
git submodule deinit -f -- a/submodule    
rm -rf .git/modules/a/submodule
git rm -f a/submodule

# or, if you want to leave it in your working tree and have done step 0
# git rm --cached a/submodule
mv a/submodule_tmp a/submodule



You cannot push commits for ''. You can only push commits that were committed with one of your own verified emails.

git commit --amend --reset-author --no-edit
git config ""
git config "Your Name"
git push origin your-branch



# Create tag
git tag -a v1.0 -m "Short description"
# List tag
git tag
# Show tag
git show v1.0
# Push tag
git push origin v1.0


git tag -d v1.0
git push --delete origin v1.0

Last updated