Skip to content
/ gwalk Public

gwalk 是一系列用于管理 Git 仓库的命令行小工具,帮助开发者对大批量的 Git 仓库进行日常维护。

License

Notifications You must be signed in to change notification settings

ZeroKwok/gwalk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gwalk

Version Python License

gwalk 一个用于管理批量 Git 仓库的命令行工具集,帮助开发者对大批量的 Git 仓库进行日常维护。

✨ 特性

  • 🔍 列出指定目录下的 Git 仓库(可选递归)
  • 🎯 支持按状态过滤(modified/untracked/dirty/clean)
  • 📋 支持黑/白名单过滤
  • 🚀 支持批量执行命令
  • 🔄 集成常用 Git 操作的小工具

📦 安装

通过 pip 安装

python -m pip install pygwalk

从源码安装

git clone https://github.com/ZeroKwok/gwalk.git
cd gwalk
python -m pip install .

🔨 命令行工具

gl - Git Fetch & Pull

快速执行 fetch 和 pull 操作:

# 拉取所有远程仓库并合并到当前分支
gl

# 使用 rebase 模式拉取
gl --rebase

# 仅执行 pull (跳过 fetch)
gl -q

gcp - Git Commit & Push

快速提交并推送更改:

# 提交修改并推送到所有远程仓库, 等价于
# git add -u && git commit -m "your commit message" && git push
gcp "your commit message"

# 仅推送当前分支到所有远程仓库
gcp -p

gwalk - 仓库批处理工具

用于批量管理 Git 仓库:

# 列出当前目录下的所有 dirty 仓库
gwalk

# 递归列出当前目录下的所有仓库
gwalk -rf all

# 在所有列出的仓库中执行 git fetch && git pull
gwalk -rf all -a run gl

gapply - 补丁应用工具

应用补丁并创建提交:

# 应用单个补丁
gapply fix-bug.patch

# 批量应用补丁并输出详细信息
gapply -v patches/*.patch

📝 使用示例

# 在所有 gwalk 列出的仓库中, 执行 gl 工具(git pull)
gwalk -rf all -a run gl

# 在所有 gwalk 列出的仓库中, 执行 git push 操作 {ab} 表示 当前分支(ActiveBranch)
gwalk -rf all -a run git push second {ab}

# 批量手动处理(交互模式)
# 在列出的所有 '包含未提交的修改' 的仓库中, 启动一个 bash shell 来接受用户的操作
gwalk -rf modified --a bash

# 批量推送
# 在列出的所有 '包含未提交的修改 且 不再黑名单中' 的仓库中, 运行 gcp 工具, 推送当前分支到所有远程仓库
gwalk -rf modified --blacklist gwalk.blacklist --a "gcp -p"

# 批量打标签
# 在列出的所有 白名单 gwalk.whitelist 匹配的仓库中, 运行 git tag v1.5.0
gwalk -rf all --whitelist gwalk.whitelist -a run git tag v1.5.0

# 批量查看目录下所有仓库的最近3次提交
gwalk -f all -l none -a run "git log --oneline -n3"

# 批量替换 origin 远程仓库的地址, 从 github.com 替换成 gitee.com
# 在所有 gwalk 列出的仓库中, 执行自定义命令
gwalk -rf all -a run git remote set-url origin `echo \`git remote get-url origin\` | python -c "print(input().replace('github.com', 'gitee.com'))"`

📄 协议

本项目基于 MIT 协议开源 - 详见 LICENSE 文件

About

gwalk 是一系列用于管理 Git 仓库的命令行小工具,帮助开发者对大批量的 Git 仓库进行日常维护。

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages