Setup
What | How |
---|---|
Add the current branch to your linux prompt and activate command completion. | 1. Download and save the following scripts on your home directory as ".git-completion.sh" and ".git-prompt.sh". You can use any name, but these instructions assume you used the previous name.
https://github.com/git/git/blob/master/contrib/completion/git-completion.bash git/git-prompt.sh at master · git/git · GitHub
2. Add the following to your ~/.bashrc file:
. ~/.git-prompt.sh export PS1='\[\033[00;37m\]\u@\t \w\[\033[01;32m\] [$(__git_ps1 "%s")]\[\033[00m\] \$ ' export GIT_PS1_SHOWDIRTYSTATE=true export GIT_PS1_SHOWSTASHSTATE=true export GIT_PS1_SHOWUNTRACKEDFILES=true export GIT_PS1_SHOWUPSTREAM=auto To know what each option above is used for and the meaning of the symbols that eventually show up near the branch name on the prompt, read the comments in the start of the script previously downloaded. |
Configure useful aliases | $ git config --global alias.unstage 'reset HEAD --' $ git config --global alias.last 'log -1 HEAD' $ git config --global alias.undoall 'checkout -f'
To use the above aliases, just use the mnemonic after "alias.". Example, to know what the last commit was, type:
$ git last |
Configure alias to open the JIRA ticket associated with the current branch | This is really a hack for my own machine, but you can use as an idea about what to do on yours. Since I name my topic branches with the corresponding JIRA ticket, I created an alias like this (I use chrome as my browser):
$ git config --global alias.ticket '!/opt/google/chrome/google-chrome https://issues.jboss.org/browse/$(git branch 2>/dev/null | grep "^\*" | cut -f 2- -d " ")'
Now, when I am working on a branch, lets say JBRULES-9999, and I want to open the corresponding jira, I just type:
$ git ticket |
Daily Use
Subject | What | How |
---|---|---|
Branches | Create a topic branch for work | $ git checkout -b <branch_name> [<origin_branch>] |
Undo all local changes | Be careful, as it literally deletes all local changes:
$ git checkout -f | |
Remove all untracked files (but not ignored files) | $ git clean -d -f | |
Delete local topic branch | $ git branch -d <branch_name> | |
Delete remote branch (BE CAREFUL) | $ git push origin :<branch_name> | |
Rewind branch | $ git reset --hard HEAD~<number_of_commits> | |
Stash | Stash work | $ git stash |
Check stash stack | $ git stash list | |
Reapply a stashed change, including updating the index | $ git stash apply --index | |
Discard stashed work | $ git stash drop stash@{0}
where stash@{0} is the index of the element to drop in the stash stack. | |
Commit | Fix the latest commit | $ git commit --amend |
Remove last commit | $ git reset --hard HEAD~1 | |
Comments