2个版本 (1个稳定版)
2.3.0 | 2023年7月19日 |
---|---|
0.1.0 | 2022年6月12日 |
#427 in 文本编辑器
每月36次下载
用于 4 crates
25KB
196 行
Git交互式变基工具
原生跨平台全功能基于终端的 序列编辑器,用于Git 1.7.8+的交互式变基。
目录
特性
跨平台
在Linux、macOS、Windows和其他许多操作系统上构建和运行。
设置操作
轻松设置操作为 pick
、squash
、fixup
、edit
、reword
和 drop
。
重新排序变基列表
通过单次按键重新排序操作列表。
多行修改
使用视觉模式一次性更改操作并重新排序多行。
切换 break
查看提交详情和差异
按键查看提交概要和完整提交差异。
支持Unicode和表情符号
编辑 exec
命令
轻松编辑由 exec
命令运行的命令。
在外部编辑器中编辑
需要在Git编辑器中做些事情吗?快速切换到您的编辑器,进行更改,然后返回工具。
设置
大多数系统
git config --global sequence.editor interactive-rebase-tool
Windows
标准命令提示符和Windows Terminal
git config --global sequence.editor "'C:/path/to/interactive-rebase-tool.exe'"
GitBash
GitBash需要使用 winpty
才能正确运行,因此要设置编辑器请使用
git config --global sequence.editor "winpty /c/path/to/interactive-rebase-tool.exe"
注意
Windows 10之前的版本在饱和的较深颜色上有严重的渲染问题,例如在现代显示设备上完全无法辨认的蓝色。虽然可以避免使用饱和颜色,但更好的选择是使用Microsoft的 ColorTool 更新主题。
临时覆盖
您可以使用环境变量 GIT_SEQUENCE_EDITOR
临时使用不同的序列编辑器。
GIT_SEQUENCE_EDITOR=emacs git rebase -i [<upstream> [<branch>]]
直接使用
interactive-rebase-tool <rebase-todo-filepath>
interactive-rebase-tool --help
interactive-rebase-tool --version
获取帮助
该工具内置了帮助功能,可以通过使用 ?
键来访问。
常用默认快捷键
快捷键可以进行自定义,请参阅配置以了解所有快捷键以及配置信息。
键 | 模式 | 描述 |
---|---|---|
? |
所有 | 显示帮助 |
上 | 正常/差异 | 向上移动选择 |
下 | 正常/差异 | 向下移动选择 |
Page Up | 正常/差异 | 向上移动选择五行 |
Page Down | 正常/差异 | 向下移动选择五行 |
Home | 正常/差异 | 将选择移动到列表开头 |
End | 正常/差异 | 将选择移动到列表末尾 |
q |
正常/差异 | 中止交互式变基 |
Q |
正常/差异 | 立即中止交互式变基 |
w |
正常/差异 | 写入交互式变基文件 |
W |
正常/差异 | 立即写入交互式变基文件 |
j |
正常/差异 | 将选定的提交向下移动 |
k |
正常/差异 | 将选定的提交向上移动 |
b |
正常 | 切换断点操作 |
p |
正常/差异 | 设置选定的提交为拾取 |
r |
正常/差异 | 设置选定的提交为重写 |
e |
正常/差异 | 设置选定的提交为编辑 |
s |
正常/差异 | 设置选定的提交为合并 |
f |
正常/差异 | 设置选定的提交为修复 |
d |
正常/差异 | 设置选定的提交为丢弃 |
E |
正常 | 编辑可编辑操作的命令 |
v |
正常/差异 | 进入和退出视觉模式 |
I |
正常 | 插入新行 |
删除 |
正常/差异 | 删除所选行 |
! |
正常/差异 | 在外部编辑器中打开待办文件 |
控制+z |
正常/差异 | 撤销上一个更改 |
控制+y |
正常/差异 | 重做之前撤销的更改 |
c |
正常/差异 | 显示提交信息 |
下 | 差异 | 向下滚动视图 |
上 | 差异 | 向上滚动视图 |
左 | 差异 | 向左滚动视图 |
右 | 差异 | 向右滚动视图 |
Home | 差异 | 滚动到顶部 |
End | 差异 | 滚动到底部 |
PageUp | 差异 | 向上滚动一步 |
PageDown | 差异 | 向下滚动一步 |
d |
差异 | 显示完整的提交差异 |
支持的平台
Linux
支持所有基于 Linux 的发行版。该项目已在 Debian 和 Ubuntu 上进行了测试,但应适用于任何标准的 Linux 发行版。如果该项目在您的平台上无法正常工作,请提交问题。
该工具已在 Tilix 和 Gnome 终端 中进行了测试。
macOS
支持最新版本的 macOS,尽管早期版本也应能工作。
Windows
支持 Windows 8.1、Windows 10 和 Windows 11 的最新版本。
该工具已在 Windows 10 中的 PowerShell 和 Windows 控制台 内的命令提示符以及 Windows 终端 中进行了测试。来自 Git for Windows 的最新 Git Bash 版本也得到支持。
Windows 控制台和 Git Bash 只提供有限支持,并且可能会出现一些功能或图形问题。不支持在 传统模式 下运行的 Windows 控制台。
Cygwin 不受官方支持。
其他
其他平台不受官方支持。某些平台有社区支持,如果您在平台上遇到项目无法正常工作的问题,请提交问题。
开发
安装 Rust
要开始开发项目,您需要安装 Rust,这通常可以使用rustup来完成。
设置
Cargo Make
本项目使用cargo-make作为任务运行器。要安装
cargo install --force cargo-make
Debian 及其衍生版
如果您计划构建发布包,您需要pkg-config
和liblzma-dev
。它们可以使用apt
安装。
sudo apt install pkg-config liblzma-dev
构建和运行
要从项目根目录构建或运行项目,请执行
# only build
cargo make build --release
# build and run
cargo run -- <path-to-git-rebase-todo-file>
示例 rebase todo 文件位于 ./test/fixtures。
测试
所有功能都有自动测试可用,可以通过以下方式运行
cargo make test
文档
使用 Rust Doc 生成了项目的 API 文档。
cargo make docs
代码检查
除了 rustc 提供的代码检查外,本项目使用 Clippy 提供额外的代码检查,运行方式为
cargo make lint
这将使用稳定版和夜间版运行代码检查。夜间版的代码检查可能会显示错误,但不会导致失败。
格式化
本项目使用 rust-fmt 提供一致的格式。一个有用的脚本将确保所有文件都格式正确。
cargo make format
覆盖率
本项目使用Tarpaulin生成覆盖率报告。覆盖率报告用于查找测试中的差距。要生成覆盖率报告
cargo make coverage
除了打印到 CLI 的报告外,HTML 报告还可以在coverage
目录中找到。
发布
构建
cargo make deb
deb 文件将被写入到target/debian/interactive-rebase-tool_*.deb
。
相关项目
- rebase-editor是一个使用 Node.js 编写的非常类似的项目。
- cj-git-patchtool是另一个用于大量进行 git rebase 的工具。
许可
Git Interactive Rebase Tool 在 GPLv3 许可下发布。见LICENSE。
有关本项目使用的第三方库的许可证,请参阅第三方许可证。
无运行时依赖
~10KB