29 个版本 (7 个稳定版)
1.2.1 | 2023年4月26日 |
---|---|
1.2.0 | 2022年11月6日 |
1.1.2-beta.2 | 2022年4月29日 |
1.1.1 | 2021年9月30日 |
0.1.6-beta.2 | 2020年5月12日 |
在 命令行工具 中排名 723
每月下载量 71
72KB
2K SLoC
Mob 是一个命令行工具,用于使用 git 进行远程协作(或配对)。
- 快速交接驾驶员代码
- 记住驾驶员的顺序
- 跟踪状态(工作、等待下一步、停止)以消除冲突和丢失工作的风险
- 使用任何分支作为基础
安装
Cargo
安装 rust 并运行
cargo install remotemob
手动
下载最新版本并解压缩到您的 PATH 中的某个位置。
使用方法
注意:尝试 mob 是安全的!它打印出它运行的所有 git 命令,如果您决定它不适合您,可以 移除所有痕迹。
mob start
创建一个新的功能分支或将分支从上一个驾驶员同步。mob next
将所有更改提交到功能分支并将交接给下一个驾驶员。mob done
将功能分支上的所有更改暂存起来,以在基本分支(通常是 main)上提交。
运行 mob
获取更多命令的帮助。
常见问题解答
如何从仓库中移除所有 mob
的痕迹?
- 运行
mob done
以移除 mob 分支。要么提交更改,要么运行git reset HEAD --hard
以丢弃更改。 - 运行
mob clean
以移除mob-meta
分支。 - 如果您不想再使用
mob
,请删除~/.mob
配置存储在哪里?
您本地的配置存储在 ~/.mob
中。仓库的配置存储在一个名为 mob-meta
的孤立分支中。
mob start
会创建运行所需的所有配置。始终安全地运行 mob clean
以删除仓库配置并重新开始。
如何显示当前状态?
运行 mob status
工作时间设置为 15 分钟,但我们必须在 7 分钟内停止会议
运行 mob start 7
钩子
您可以在 ~/.mob
中添加钩子以在轮次结束时通知您或开始时接管屏幕共享。
...
[hooks]
after_start="take_screen.sh"
after_timer="say 'mob next NEXT_DRIVER'"
钩子由 sh
执行,可以包含两个变量
CURRENT_DRIVER
:始终是您在~/.mob
中配置的名称NEXT_DRIVER
:下一个驾驶员或anyone
如果您是会话中的第一个。在所有before_*
钩子中为空。
可用的钩子包括
before_start
:在运行mob start
后尽可能快地运行,在检查是否轮到您或您的工作目录是否干净之前。after_start
:在用mob start
开始会话后立即运行,但在计时器开始之前。这是一个接管屏幕的好钩子。after_timer
:当您的轮次结束时运行。第一次运行mob start
时,它会尝试找到播放声音和显示桌面通知的命令以填充此钩子。before_next
:在运行 mob next 之前,NEXT_DRIVER
不可用。after_next
:在运行 mob next 之前,NEXT_DRIVER
要么是一个名称,要么是anyone
。before_done
:在合并和删除分支之前。after_done
:在运行 done 后,NEXT_DRIVER
不可用。
工作原理
mob
使用一个名为 mob-meta
的孤儿分支来保存会话状态和设置。您可以使用 mob status [-r]
查看会话内容,并使用 mob clean
删除它。
Session {
drivers: Drivers(
[
"Paul",
"Leo",
"Ella",
],
),
branches: Branches {
branch: "mob-session",
base_branch: "main",
},
settings: Some(
Settings {
commit_message: "mob sync [skip ci]",
work_duration: 10,
},
),
state: Working {
driver: "Ella",
},
}
会话可以处于 3 种不同的状态
灵感和其他工具
此工具的灵感来自 远程 mob 编程 及其用 Go 编写的工具 mob。
我这样做是为了
- 记住驾驶员的顺序
- 使用任何分支作为基本分支,而不仅仅是 master 或 main
- 了解状态,这样我们就得到漂亮的警告而不是 git 冲突和丢失引用。
- 当然... rust ;)
要查找其他工具,请查看 github 上的 mob 编程计时器标签
依赖关系
~17–30MB
~530K SLoC