4 个版本
0.1.3 | 2024年4月24日 |
---|---|
0.1.2 | 2024年4月24日 |
0.1.1 | 2023年10月15日 |
0.1.0 | 2023年10月15日 |
#1382 在 开发工具
61KB
2K SLoC
co-author
当结对编程或群体编程时,给予你的队友应有的认可。
使用场景
当你在处理某段代码时遇到困难,知道向谁求助是有用的。
Git 的 blame 功能很棒,但它只提到了提交者,而没有提到结对/群体编程的伙伴。
了解还有谁参与了其中(可能提交者很忙或很久以前就离开了公司)是很有帮助的。
有许多编辑器插件(VSCode,JetBrains)遵循 GitHub 的共同作者提交指南。
这是一个简单的 CLI 工具,实现了相同的功能,同时独立于编辑器,易于集成到现有的工作流程中。
安装
cargo install co-author
使用方法
Co-author 将会在你的当前工作目录中查找 authors.csv
文件,如果找不到,则会回退到 $XDG_CONFIG_HOME/co-author/
,$HOME/.config/co-author/
,$HOME/.co-author/
和 $HOME
,按照这个顺序。
此文件应遵循以下结构 alias,name,email
j,John Doe,john@users.noreply.github.com
aj,Alice Johnson,alice@example.com
bb,Bob Brown,bob@example.com
e,Erica Lee,erica@example.com
如果没有传递选项,它会提示您输入一个由空格分隔的别名列表,然后输入提交信息。
它将生成具有以下结构的提交信息
a commit message
Co-Authored-by: John Doe <[email protected]>
Co-Authored-by: Erica Lee <[email protected]>
如果您将多个用户分组在同一个别名下,它们将一次性被检索。
这特别有用,如果您在各个团队之间跳转,并且更愿意选择一组人而不是个人。
例如,对于这样的文件
j,John Doe,john@users.noreply.github.com
j,Jane Smith,jane@example.com
当给定别名 j
时,它将添加 两个用户 作为共同作者。
选项
您可以通过多种方式修改其行为,大多数都会绕过提示
co-author -h
Co-Author your git commits from the command line
Usage: co-author [OPTIONS]
Options:
-f, --file <FILE> CSV file containing a list of authors (alias,name,email)
-l, --list <LIST> List of comma separated author aliases
-a, --all Use all available authors
-m, --message <MESSAGE> Specify commit message
-e, --editor Open default editor for commit message
-p, --pre-populate Pre-populate prompt/editor with (first line of) last commit message
-s, --sort Sort authors signatures when adding to commit message
--amend Amend last commit, both message and authors will be overwritten
--fzf Use fzf for author selection
-h, --help Print help
-V, --version Print version
--file
指定不同的作者文件路径。
--list
使用预定义的别名列表。
这使得别名选择可脚本化。这也方便了与不同团队合作。
alias coa_proj_a="co-author --list a,b,c"
alias coa_proj_x="co-author --list x,y,z"
省略别名提示。
--all
使用文件中的所有别名。
与 --list
冲突。
省略别名提示。
--message
就像 git 的 -m
一样:指定提交信息。
省略消息提示。
--editor
就像 git 的默认行为:打开文本编辑器来编写提交信息。
它将在您的 git 设置中查找 editor
配置,如果找不到,则回退到 $EDITOR
,vim
和 vi
,按此顺序。
省略消息提示。
--pre-populate
预先用上次提交信息的 主题 填充提示或编辑器,因此只需恢复第一行。
如果您使用 Conventional Commits 或其他标准,并且希望有相同的通用格式,只是类型或描述不同。
与 --message
冲突。
--sort
按签名(username <email>
)对作者进行字母顺序排序。
如果没有使用,则将尊重 authors.csv
文件中的顺序。
--amend
修改最后一个提交,使用新提供的消息和作者覆盖消息和作者。
在内部启用 --pre-populate
标志。
--fzf
依赖于已安装的 fzf
。
使用您的 fzf
安装(和配置)来呈现作者选择器。使用 --multi
标志,因此按 Tab
键将选择多个作者。
完成后按 Enter 键继续提交信息。
与 --all
和 --list
冲突。
依赖项
~14–25MB
~408K SLoC