mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-05-29 04:53:17 +02:00
Fixed the following issues: 1. gitstatus.py: - Fixed broad IOError exception handling to catch specific OSError/FileNotFoundError - Fixed unused variable warning by using _ for ignored stderr 2. proxy.py: - Fixed os.path.expandvars usage that doesn't expand ~, changed to os.path.expanduser - Fixed check_output call that was incorrectly passing a file path instead of command list - Fixed missing space in env variable assignment for aliases 3. update_emoji.py: - Fixed file handle leaks by using with statements for file operations - Removed unnecessary .keys() call in dict iteration 4. cheatsheet.py: - Fixed parse() function to handle lines without '=' character - Fixed inefficient list comprehension using any() instead - Fixed shadowing of built-in 'cheatsheet' function name 5. ssh-agent.py: - Modernized string formatting from .format() to f-string 6. ssh-proxy.py: - Fixed next() call without default value that crashes when no proxy env vars set - Fixed missing exit code propagation from subprocess.call Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| git-prompt.plugin.zsh | ||
| gitstatus.py | ||
| README.md | ||
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:
plugins=(... git-prompt)
You may also need to customize your theme to change the way the prompt is built. See the OMZ wiki on customizing themes.
See the original repository.
Requirements
This plugin uses python3, so your host needs to have it installed.
Examples
The prompt may look like the following:
(master↑3|✚1): on branchmaster, ahead of remote by 3 commits, 1 file changed but not staged(status|●2): on branchstatus, 2 files staged(master|✚7…): on branchmaster, 7 files changed, some files untracked(master|✖2✚3): on branchmaster, 2 conflicts, 3 files changed(experimental↓2↑3|✔): on branchexperimental; your branch has diverged by 3 commits, remote by 2 commits; the repository is otherwise clean(:70c2952|✔): not on any branch; parent commit has hash70c2952; the repository is otherwise clean(master|⚑2): on branchmaster, there are 2 stashed changes
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 |
| -n | there are n deleted files |
| ⚑n | there are n stashed changes |
| … | 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_CACHEto any value in order to enable caching. - Set the variable
ZSH_THEME_GIT_SHOW_UPSTREAMto any value to display the upstream branch. - 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` to see what variables are available.
Enjoy!