3 个稳定版本
2.2.0 | 2024年1月29日 |
---|---|
2.1.0 | 2023年12月20日 |
2.0.2 | 2023年12月15日 |
172 在 开发工具 中
49 每月下载量
550KB
799 行
Octogit
这是一个我用来在我的 Shell 提示符中显示 git 状态的程序。
您可以使用将其二进制文件放置在 Shell 提示符中的方法来使用它,以便它被执行。
在 fish 中,它可能看起来像这样
function fish_prompt
printf (pwd)' '
octogit
end
默认情况下,octogit 将此输出打印到 stdout(如果您当前 git 目录中每个类型的更改都有),以空格结束但不换行
octogit--test
每个元素的顺序含义
- 暂存区
- 已获取但尚未拉取的提交
- 尚未推送到远程的提交
- 暂存重命名文件
- 暂存修改
- 暂存新文件
- 暂存删除
- 未暂存修改
- 未暂存新文件
- 未暂存删除
它使用 nerd font 符号表示某些元素。
如果您不想使用 nerd font,请使用 --ascii-symbols
标志
octogit--test--ascii-符号
只有至少有一个元素的才会打印出来,这使得测试 octogit 的完整外观有点烦人。这就是为什么有 --test
标志的原因 - 无论您当前的 git 目录实际上有多少更改,您都可以看到 octogit 的整个输出。
默认情况下,提交(暂存、未拉取、未推送)以黄色显示,暂存更改以绿色显示,未暂存更改以青色显示,遵循您的终端颜色方案。
您可以将每个类别的默认值更改为您提供的这些 8 种颜色之一
黑色、红色、绿色、黄色、蓝色、紫色、青色、白色
octogit--颜色-全部-暂存紫色
或通过提供十六进制颜色:octogit --color-all-staged AF87FF
颜色的 cAsE 不重要。
然后您可以根据需要覆盖默认值以特定元素:octogit --color-all-unstaged blue --color-deleted red
同样适用于所使用的 字形:octogit --symbol-unpushed --symbol-deleted
有趣的是,你并不局限于单个字符。所以如果愿意的话,也可以是一个完整的单词!:octogit --symbol-unpushed meow
对于颜色也类似:octogit --color-staged-deleted '87FF5F this is my brigher green that I want to use for this element'
尽管将整个句子放入标志中,但只会使用十六进制颜色,忽略所有其他文本。你可以将这种行为用作注释。不适用于单词颜色(如 green
、red
等)。
由于这个程序是你将在你的 shell 提示符中使用的,它默认不会打印错误信息。如果某些事情没有正常工作,请使用 -v
/--verbose
标志交互式地检查发生了什么
octogit-v--test--颜色-未暂存'non-existent-颜色'
换句话说,如果你的提示符有任何错误,它仍然会通过使用默认值继续工作。
这可以防止你因为指定了错误的参数而有一个损坏的 shell 提示符,例如。
如果你不想看到某个元素,你可以将其删除:octogit --remove-unpulled --remove-deleted
请注意,所有获取这些元素的 git 命令仍然会被执行,所以通过删除一些元素你不会得到速度上的提升。
删除元素的也会 不会 转移到另一个元素。
在一些更知名的 shell 提示符 vcs 中,所有已暂存更改都会显示在单个元素中。
然而,在 octogit 中,如果你删除了一个元素,你将缺少那条信息。
例如,如果你讨厌看到 stash,这很有用。
用法
A simple executable git status for your shell prompt.
Usage: octogit [OPTIONS]
Options:
-v, --verbose
octogit doesn't print errors by default, because it's supposed to be in
your shell prompt constantly. When you do want to see the errors, use this
flag
--ascii-symbols
octogit uses nerd font symbols for some elements by default. Use this flag
if you don't use a nerd font. You can see both the nerd and ascii defaults
for every category later down in this help
--test
Will print every single element. Helpful for testing the output without
having to be in a git directory with certain changes
--color-all-commits <COLOR_ALL_COMMITS>
[default: yellow] For every color, you can either specify one of the main
8 colors from your terminal color scheme: black, red, green, yellow, blue,
purple, cyan, white Or a hex code, without the # symbol like: FFAFD7 For
both hex codes and color names, the cAsE doesn't matter
--color-all-staged <COLOR_ALL_STAGED>
[default: green]
--color-all-unstaged <COLOR_ALL_UNSTAGED>
[default: cyan]
--color-stashed <COLOR_STASHED>
[default: --color-all-commits]
--color-unpulled <COLOR_UNPULLED>
[default: --color-all-commits]
--color-unpushed <COLOR_UNPUSHED>
[default: --color-all-commits]
--color-renamed <COLOR_RENAMED>
[default: --color-all-staged]
--color-staged <COLOR_STAGED>
[default: --color-all-staged]
--color-added <COLOR_ADDED>
[default: --color-all-staged]
--color-staged-deleted <COLOR_STAGED_DELETED>
[default: --color-all-staged]
--color-modified <COLOR_MODIFIED>
[default: --color-all-unstaged]
--color-unstaged <COLOR_UNSTAGED>
[default: --color-all-unstaged]
--color-deleted <COLOR_DELETED>
[default: --color-all-unstaged]
--symbol-stashed <SYMBOL_STASHED>
[default: or *]
--symbol-unpulled <SYMBOL_UNPULLED>
[default: or <]
--symbol-unpushed <SYMBOL_UNPUSHED>
[default: or >]
--symbol-renamed <SYMBOL_RENAMED>
[default: or &]
--symbol-staged <SYMBOL_STAGED>
[default: or !]
--symbol-added <SYMBOL_ADDED>
[default: or +]
--symbol-staged-deleted <SYMBOL_STAGED_DELETED>
[default: or -]
--symbol-modified <SYMBOL_MODIFIED>
[default: or !]
--symbol-unstaged <SYMBOL_UNSTAGED>
[default: or +]
--symbol-deleted <SYMBOL_DELETED>
[default: or -]
--remove-stashed
Remove an element from outputting to stdout using the following flags.
Keep in mind, everything still gets processed, so you won't get a speed
boost. If you remove something, you will then just lack that information,
instead of it getting transferred to another element, like you may expect.
Helpful if you really hate staged deletions specifically. /s
--remove-unpulled
--remove-unpushed
--remove-renamed
--remove-staged
--remove-added
--remove-staged-deleted
--remove-modified
--remove-unstaged
--remove-deleted
-h, --help
Print help
-V, --version
Print version
安装
cargo install octogit
也支持 cargo-binstall
和 cargo-quickinstall
卸载
cargo uninstall octogit
依赖
~3–12MB
~144K SLoC