Fork是一个好用的git工具,只是没有中文而已(不过不用翻译也能看使用)。
工具下载地址:https://fork.dev/
界面展示:
当项目中仓库模块比较多时,可以看到每个模块都是一个分页,每一个都要手动切换分页拉取,比较麻烦。
这时候可以使用一些git的命令实现一次全部拉取功能。
比如Window上可以这样:
@echo off
git branch --show-current && git pull --all && echo. && git submodule foreach --recursive "git branch --show-current && git pull --all && echo."
MacOS不太清楚,不过在这里是为了推荐工具中内置的脚本工具。
打开Fork软件,依次点击:
File → Preferences... → Custom Commands → + → Add Repository Custom Command
可以在面板右边的Action选项下,选择“Sh Command”并打开“Edit Action”面板。这里顺手将Name修改为“拉取所有仓库”
在“Script”文本框中输入以下代码,可以实现Fork中的一键拉取仓库中的所有模块(包含子模块)。
#!/bin/bash
# 切换到包含.git的目录,确保脚本在仓库根目录运行
cd "$(git rev-parse --show-toplevel)"
# 获取当前分支名称
current_branch=$(git branch --show-current)
# 拉取当前分支的更新
git pull origin "$current_branch"
# 更新所有子模块的当前分支
git submodule foreach --recursive '
cd "$0"
# 获取子模块的当前分支名称
submodule_current_branch=$(git branch --show-current)
# 拉取子模块当前分支的更新
git pull origin "$submodule_current_branch"
'
点击“Edit”后,保存代码。关闭“Preferences”窗口后,可以在工具主窗口的右上角“Open In”菜单列表中找到刚刚新加的“拉取所有仓库”。