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.

  • Automatically reword all rebased commits
  • Git hook not running 2 consecutive commands
  • SVN / Git / Bash
  • git post-commit hook - script on committed files
  • How do I pass a range of commits to git log?
  • GitHub: Setup SSH
  • How to prevent git merge if current branch has uncommitted changes
  • Autocreate directories when building
  • Ignoring an already checked-in directory's contents?
  • Unintended commit by Git
  • Download Github pull request as unified diff
  • How do I deal with nested branches in git?
  • 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.