How to
Push
Push to a remote specific branch
Assuming as an example that the remote upstream has been added and you need to send code from the local branch develop to the remote branch dev-master, to be able to execute this operation just execute the command below:
git push upstream develop:dev-masterPush ignoring verify or hooks
git push github develop:master --no-verifyIgnore all files in this folder
*
!.gitignoreGet current branch
git branch --show-currentCache
Clear Entire Git Cache
git rm -r --cached .git add .
$ git commit -am 'Removed files from the index (now ignored)'Cache user and password
git config credential.helper store
git config --global credential.helper 'cache --timeout 7200'Stash
Stash including untracked files
git stash --include-untrackedStash only file or folder
git stash push path/to/fileRevert
Revert files from a specific hash commit
git checkout 3df73866bef5d560ef2e5s59b6deaa18001 -- wp-content/uploads/2011 wp-content/uploads/2012 Revert to a specific commit
git revert --no-commit 0766c053..HEADReset
Reset Permissions
When you accidentally modify the permissions of versioned files, it is possible to return to the initial permission state using the command below
git diff -p -R --no-ext-diff --no-color \
| grep -E "^(diff|(old|new) mode)" --color=never \
| git applyUse globally
If you want to use globally, you can do it that way:
git config --global --add alias.permission-reset '!git diff -p -R --no-ext-diff --no-color | grep -E "^(diff|(old|new) mode)" --color=never | git apply'
git permission-resetReset by time
git reset --hard master@{"300 minutes ago"}Undo the last commit
git reset --soft HEAD~1Rename
Rename your branch
git branch -m new-nameIf you are on a different branch:
git branch -m old-name new-name
Delete the old-name remote branch and push the new-name local branch.
git push origin :old-name new-name
Reset the upstream branch for the new-name local branch.
Switch to the branch and then:
git push origin -u new-name
Logs
Find versioned files
To find files that have been versioned, regardless of whether they were removed from versioning or not.
git log --all --full-history -- "**/thefile.*"View git logs of just one author commits
# Only commits by Vinicius
git log --author="Vinicius"
# Use "--all" to search all branches
git log --author="Vinicius" --allView git logs of many authors commit
# Many Authors
git log --author="\(Vinicius\)\|\(Jose\)"Exclude git commits log from one or more author
git log --author='^(?!Vinicius|Jose).*$' --perl-regexpProxy bypass to specific host
# Globally
git config --global add remote.{remote_name} proxy
# Locally
git config --local --add remote.{remote_name}.proxy ""Fixing wrong commit messages
git rebase -i HEAD~4Deleting remote branches
git push origin --delete branchNameKeeping a fork up to date
Clone your fork:
git clone git@github.com:YOUR-USERNAME/YOUR-FORKED-REPO.gitAdd remote from the 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 the original repo to keep up with their changes:
git pull upstream masterHow to use prune to Clean Up remote branches
Using "prune" on a Remote Repository
The easiest way to use prune is to provide it as an option when fetching:
$ git fetch --prune originIn cases where you'd like to only perform a prune and not fetch remote data, you can use it with the git remote command:
$ git remote prune originIf you want to have prune executed with every fetch operation, you can configure Git accordingly:
$ git config --global fetch.prune trueTags
Create and tag with a message
git tag -a 0.0.0 -m "initial Changelog" Last updated
Was this helpful?