Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jimeh/git-aware-prompt
Display current Git branch name in your terminal prompt when in a Git working directory.
https://github.com/jimeh/git-aware-prompt
Last synced: 20 days ago
JSON representation
Display current Git branch name in your terminal prompt when in a Git working directory.
- Host: GitHub
- URL: https://github.com/jimeh/git-aware-prompt
- Owner: jimeh
- License: cc0-1.0
- Created: 2009-11-13T21:43:12.000Z (almost 15 years ago)
- Default Branch: master
- Last Pushed: 2023-09-13T01:21:48.000Z (about 1 year ago)
- Last Synced: 2024-10-01T20:40:21.260Z (about 1 month ago)
- Language: Shell
- Homepage:
- Size: 41 KB
- Stars: 2,153
- Watchers: 66
- Forks: 340
- Open Issues: 37
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Git Aware Prompt
Working with Git and its great branching/merging features is
amazing. Constantly switching branches can be confusing though as you have to
run `git status` to see which branch you're currently on.The solution to this is to have your terminal prompt display the current
branch. There's a [number][1] [of][2] [articles][3] [available][4] online
about how to achieve this. This project is an attempt to make an easy to
install/configure solution.[1]: http://aaroncrane.co.uk/2009/03/git_branch_prompt/
[2]: http://railstips.org/2009/2/2/bedazzle-your-bash-prompt-with-git-info
[3]: http://techblog.floorplanner.com/2008/12/14/working-with-git-branches/
[4]: http://www.intridea.com/2009/2/2/git-status-in-your-prompt## Overview
If you `cd` to a Git working directory, you will see the current Git branch
name displayed in your terminal prompt. When you're not in a Git working
directory, your prompt works like normal.![Git Branch in Prompt](https://raw.github.com/jimeh/git-aware-prompt/master/preview.png)
## Installation
Clone the project to a `.bash` folder in your home directory:
```bash
mkdir ~/.bash
cd ~/.bash
git clone https://github.com/jimeh/git-aware-prompt.git
```Edit your `~/.bash_profile` or `~/.profile` or `~/.bashrc` (for Ubuntu) and add the following to the top:
```bash
export GITAWAREPROMPT=~/.bash/git-aware-prompt
source "${GITAWAREPROMPT}/main.sh"
```## Configuring
Once installed, there will be new `$git_branch` and `$git_dirty` variables
available to use in the `PS1` environment variable, along with a number of
color helper variables which you can see a list of in [colors.sh][].[colors.sh]: https://github.com/jimeh/git-aware-prompt/blob/master/colors.sh
If you want to know more about how to customize your prompt, I recommend
this article: [How to: Change / Setup bash custom prompt (PS1)][how-to][how-to]: http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html
### Suggested Prompts
Below are a few suggested prompt configurations. Simply paste the code at the
end of the same file you pasted the installation code into earlier.#### Mac OS X
```bash
export PS1="\u@\h \W \[\$txtcyn\]\$git_branch\[\$txtred\]\$git_dirty\[\$txtrst\]\$ "
```Optionally, if you want a nice pretty prompt when using `sudo -s`, also add
this line:```bash
export SUDO_PS1="\[$bakred\]\u@\h\[$txtrst\] \w\$ "
```#### Ubuntu
Standard:
```bash
export PS1="\${debian_chroot:+(\$debian_chroot)}\u@\h:\w \[$txtcyn\]\$git_branch\[$txtred\]\$git_dirty\[$txtrst\]\$ "
```Colorized:
```bash
export PS1="\${debian_chroot:+(\$debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\] \[$txtcyn\]\$git_branch\[$txtred\]\$git_dirty\[$txtrst\]\$ "
```#### Windows
```bash
export PS1="\[\033]0;$MSYSTEM:\w\007\033[32m\]\u@\h:\[\033[33m\w \[$txtcyn\]\$git_branch\[$txtred\]\$git_dirty\[$txtrst\]\033[0m\]\$ "
```## Updating
Assuming you followed the default installation instructions and cloned this
repo to `~/.bash/git-aware-prompt`:```bash
cd ~/.bash/git-aware-prompt
git pull
```## Usage Tips
To view other user's tips, please check the
[Usage Tips](https://github.com/jimeh/git-aware-prompt/wiki/Usage-Tips) wiki
page. Or if you have tips of your own, feel free to add them :)## License
[CC0 1.0 Universal](http://creativecommons.org/publicdomain/zero/1.0/)