How do I modify cygwin's PS1 for git bash completion?

Here is my current PS1:

$ echo $PS1
\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$

I have installed git bash completion and it isn’t showing the current branch in my command prompt. I think this needs to be edited but I’ve got no idea what to change to make it show the current branch. Note that I like the colors and general structure (i.e. with $ on its own line), so I’d like to keep that if possible.

  • Git Bash won't run my python files?
  • Bash completion: Honor repository-specific Git alias in alias completion
  • Exclude .svn directories from grep
  • Package management in git for windows?
  • Git 2.5.1's bash console doesn't open python interpreter
  • Post Commit Hook Not Running
  • git directory conflicts with remote repository
  • should I be (git)ignoring my knitr cache?
  • Untracked files between branches in Git
  • Why does git help add “git-” before every command name?
  • pushing some files and history to new git repo
  • How to get the current checked out Git branch name through pygit2?
  • One Solution collect form web for “How do I modify cygwin's PS1 for git bash completion?”

    Modify the prompt string and add $(__git_ps1 " (%s)") somewhere.

    For example, try typing this into Bash:

    export PS1="\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]$(__git_ps1 ' (%s)')\n\$"
    

    Once you find something you like, add that line to one of Bash’s startup files, e.g. $HOME/.bashrc.

    The source for git-prompt.sh is well-commented and worth browsing if you’re curious about other options.

    Note that you may have to manually source path/to/git-prompt.sh before this will work. If so, add this line to your config file as well, above the export PS1 bit.

    Git Baby is a git and github fan, let's start git clone.