README.md 2.32 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
# git-prompt plugin

A `zsh` prompt that displays information about the current git repository. In particular:
the branch name, difference with remote branch, number of files staged or changed, etc.

To use it, add `git-prompt` to the plugins array in your zshrc file:

```zsh
plugins=(... git-prompt)
```

See the [original repository](https://github.com/olivierverdier/zsh-git-prompt).

14
15
16
## Prerequisites
This plugin uses `python`, so your host needs to have it installed

17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
## Examples

The prompt may look like the following:

- `(master↑3|✚1)`: on branch `master`, ahead of remote by 3 commits, 1 file changed but not staged
- `(status|●2)`: on branch `status`, 2 files staged
- `(master|✚7…)`: on branch `master`, 7 files changed, some files untracked
- `(master|✖2✚3)`: on branch `master`, 2 conflicts, 3 files changed
- `(experimental↓2↑3|✔)`: on branch `experimental`; your branch has diverged by 3 commits, remote by 2 commits; the repository is otherwise clean
- `(:70c2952|✔)`: not on any branch; parent commit has hash `70c2952`; the repository is otherwise clean

## Prompt Structure

By default, the general appearance of the prompt is:

```
(<branch><branch tracking>|<local status>)
```

The symbols are as follows:

### Local Status Symbols

| Symbol | Meaning                        |
|--------|--------------------------------|
| ✔      | repository clean               |
| ●n     | there are `n` staged files     |
| ✖n     | there are `n` unmerged files   |
| ✚n     | there are `n` unstaged files   |
| …      | there are some untracked files |

### Branch Tracking Symbols

| Symbol | Meaning                                                       |
|--------|---------------------------------------------------------------|
| ↑n     | ahead of remote by `n` commits                                |
| ↓n     | behind remote by `n` commits                                  |
| ↓m↑n   | branches diverged: other by `m` commits, yours by `n` commits |

## Customisation

- Set the variable `ZSH_THEME_GIT_PROMPT_CACHE` to any value in order to enable caching.
- You may also change a number of variables (whose name start with `ZSH_THEME_GIT_PROMPT_`) 
  to change the appearance of the prompt. Take a look at the bottom of the [plugin file](git-prompt.plugin.zsh)`
  to see what variables are available.


**Enjoy!**