#git-status #shell-prompt #git-directory #commit #display #output #version-control

app octussy

为您的shell提示符提供简单的可执行git状态

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

Download history 1/week @ 2024-05-21

每月下载量 73

MIT 许可证

550KB
757

Octussy

是的,它确实如您所想的那样工作。

这是一个我用来在shell提示符中显示git状态的程序。

您可以使用将其二进制文件放置在shell提示符中的方式来使用它,以便它被执行。

在fish中,它可能看起来像这样

function fish_prompt
	printf (pwd)' '
	octussy
end

默认情况下,octussy会将此输出打印到stdout(如果您当前git目录中每个类型都有更改),以空格结尾但不是换行符

octussy--test

以下是对每个元素含义的顺序说明

  1. 暂存
  2. 您已获取但尚未拉取的提交
  3. 您尚未推送到远程的提交
  4. 已暂存的已重命名文件
  5. 已暂存的修改
  6. 已暂存的新文件
  7. 已暂存的删除
  8. 未暂存的修改
  9. 未暂存的新文件
  10. 未暂存的删除

它使用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'

尽管整个句子都放在了标志里,但只使用了十六进制颜色,忽略了所有其他文本。你可以利用这个行为来添加注释。不适用于单词颜色(如greenred等)。

由于这个程序是你将在你的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-binstallcargo-quickinstall也被支持

依赖关系

~1.3–2MB
~34K SLoC