brew install git bash-completion
Configure things:
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --global alias.co checkout
git config --global apply.whitespace nowarn
Setup an SSH key
ssh-keygen
Hit return a couple of times -- leave password blank if you want.
cat ~/.ssh/id_rsa.pub | pbcopy
Paste that code into your settings page on your repository host(s).
Get happy Git colors. Paste the following into your ~/.gitconfig
file:
[color]
branch = auto
diff = auto
status = auto
[color "branch"]
current = yellow reverse
local = yellow
remote = green
[color "diff"]
meta = yellow bold
frag = magenta bold
old = red bold
new = green bold
[color "status"]
added = yellow
changed = green
untracked = cyan
Create a ~/.gitexcludes
file and paste in this:
.DS_Store
There, now you don't have to ignore that every time.
Add the following to your ~/.bash_profile
or ~/.bashrc
:
source /usr/local/git/contrib/completion/git-completion.bash
GIT_PS1_SHOWDIRTYSTATE=true
export PS1='[\u@mbp \w$(__git_ps1)]\$ '
That will add tab auto-completion for Git branches, display the current branch on your prompt, and show a '*' after the branch name if there are unstaged changes in the repository, and a '+' if there are staged (but uncommitted) changes. It will look something like this:
[user@computer ~/Sites/example.com (master*)]$
If you want to have a different email address for a particular project (a personal project on your work computer, perhaps?), just run this command inside that project's folder:
git config user.email "you@example.com"
It's the same command as before, this time just omitting the --global
.
This wasn't working for me at first. The colors, if set as suggested by @megahall were static, and I wanted red if there were changes (in addition to the star or any other symbol added by git), green if clean, etc.
I opened $(brew --prefix)/etc/bash_completion.d/git-prompt.sh, and in there I found that the colors will only work if using the PROMPT_COMMAND and the GIT_PS1_SHOWCOLORHINTS is set to anything other than empty. Here's how it ended working for me:
brew install git bash-completion
per recommendation when the above command finishes, I added the following line to ~/.bash_profile (though not 100% sure what it does, I believe it makes the bash completion functions available for use locally):
[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion
Then I added these lines:
GIT_PS1_SHOWDIRTYSTATE=true
GIT_PS1_SHOWCOLORHINTS=true
PROMPT_COMMAND='__git_ps1 "\u@local:\W" "\$ "'