Cheat Sheet
Useful git commands
Branch
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 popDiscard local changes
git reset --hard origin/master
git pull origin masterUpdate parent branch
git checkout feature_abc
git checkout -b feature_def
# --> Someone changed something in feature_abc
git pull origin feature_abcClone
Git clone private repo
git clone https://myemail%40gmail.com:[email protected]/my-group/my-repo.gitWhere:
myemail%40gmail.commeans[email protected]and it is your username;123456is your password;
Fork
Keeping a fork up to date
Clone your fork
git clone [email protected]:YOUR-USERNAME/YOUR-FORKED-REPO.gitAdd remote from original repository in your forked repository.
cd into/cloned/fork-repo
git remote add upstream git://github.com/ORIGINAL-DEV-USERNAME/REPO-YOU-FORKED-FROM.git
git fetch upstreamUpdating your fork from original repo to keep up with their changes.
git pull upstream masterTrack forks
https://techgaun.github.io/active-forks/index.html
Manage credentials
Store credentials permanently
git config credential.helper storeStore 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 cacheThe 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 exitModule
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/submoduleReferences
https://stackoverflow.com/questions/1260748/how-do-i-remove-a-submodule
Push
You cannot push commits for '[email protected]'. You can only push commits that were committed with one of your own verified emails.
git commit --amend --reset-author --no-edit
git config user.email "[email protected]"
git config user.name "Your Name"
git push origin your-branchTag
Create
# 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.0Delete
git tag -d v1.0
git push --delete origin v1.0Last updated