7个版本 (3个稳定版)
1.0.2 | 2023年12月6日 |
---|---|
1.0.1 | 2023年10月2日 |
1.0.0 | 2023年9月30日 |
0.3.2 | 2023年9月30日 |
0.2.0 | 2023年9月23日 |
在 操作系统 类别中排名 81
每月下载量 73 次
550KB
757 行
Octussy
是的,它确实如您所想的那样工作。
这是一个我用来在shell提示符中显示git状态的程序。
您可以使用将其二进制文件放置在shell提示符中的方式来使用它,以便它被执行。
在fish中,它可能看起来像这样
function fish_prompt
printf (pwd)' '
octussy
end
默认情况下,octussy会将此输出打印到stdout(如果您当前git目录中每个类型都有更改),以空格结尾但不是换行符
octussy--test
以下是对每个元素含义的顺序说明
- 暂存
- 您已获取但尚未拉取的提交
- 您尚未推送到远程的提交
- 已暂存的已重命名文件
- 已暂存的修改
- 已暂存的新文件
- 已暂存的删除
- 未暂存的修改
- 未暂存的新文件
- 未暂存的删除
它使用nerd font符号表示某些元素。
如果您不想使用nerd font,请使用--ascii-symbols
标志
octussy--test--ascii-符号
只有至少有一个元素的打印,这使得测试octussy的完整外观有些讨厌。这就是为什么存在--test
标志的原因——您可以看到octussy的整个输出,而不管当前git目录实际上有多少更改。
默认情况下,提交(暂存、未拉取、未推送到远程)以黄色显示,暂存更改以绿色显示,未暂存更改以青色显示,遵循您的终端颜色方案。
您可以将每个类别的默认值更改为以下8种颜色之一
黑色、红色、绿色、黄色、蓝色、紫色、青色、白色
octussy--颜色-全部-将暂存设置为紫色
或者通过提供十六进制颜色:octussy --color-all-staged AF87FF
颜色的cAsE无关紧要。
然后,如果您想,您可以覆盖特定元素的默认值:octussy --color-all-unstaged blue --color-deleted red
同样适用于所使用的符号:octussy --symbol-unpushed 𰤇 --symbol-deleted 𱇪
有趣的是,你不仅限于单个字符。所以,如果你想的话,可以是整个单词!:octussy --symbol-unpushed meow
对于颜色,也有类似的情况:octussy --color-staged-deleted '87FF5F this is my brigher green that I want to use for this element'
尽管整个句子都放在了标志里,但只使用了十六进制颜色,忽略了所有其他文本。你可以利用这个行为来添加注释。不适用于单词颜色(如green
、red
等)。
由于这个程序是你将在你的shell提示符中使用的,所以它默认不会打印错误消息。如果某些功能工作不正常,可以使用-v
/--verbose
标志交互式地检查出了什么问题
octussy-v--test--颜色-未暂存‘non-existent-颜色'
换句话说,如果存在错误,你的提示符仍然会通过使用默认设置继续工作。
这可以防止你因为指定了错误的参数等而有一个损坏的shell提示符。
如果你不想看到任何元素,你可以将其删除:octussy --remove-unpulled --remove-deleted
请注意,获取所有元素所需的git命令仍然会执行,因此删除某些元素不会带来速度上的提升。
删除元素的详细信息也不会被传输到另一个元素。
在一些更知名的shell提示符vcs中,所有暂存更改都显示在单个元素中。
然而,在octussy中,如果你删除了一个元素,你将缺少那些信息。
如果你讨厌看到stash等,这将是很有用的。
用法
A simple executable git status for your shell prompt
Usage: octussy [OPTIONS]
Options:
-v, --verbose
octussy 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
octussy 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 (see a summary with '-h')
-V, --version
Print version
安装
cargo install octussy
cargo-binstall
和cargo-quickinstall
也被支持
依赖关系
~1.3–2MB
~34K SLoC