Skip to main content

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

Project description

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 - 补丁应用工具

应用补丁并创建提交(dry-run 模式):

gapply -n patchs/0008-Add-cache-and-Settings-management-capabilities-suppo.patch 

输出如下:

Patch: patchs/0008-Add-cache-and-Settings-management-capabilities-suppo.patch
 - subject : Add cache and Settings management capabilities, supportfor environment detection
 - newfiles: 
  - src/shared/store/cache.js
  - src/shared/store/preset.js
  - src/shared/store/settings.js
  - src/shared/utils/env.js
(dry-run) > git apply -v "patchs/0008-Add-cache-and-Settings-management-capabilities-suppo.patch"
(dry-run) > git add -u
(dry-run) > git add "src/shared/store/cache.js"
(dry-run) > git add "src/shared/store/preset.js"
(dry-run) > git add "src/shared/store/settings.js"
(dry-run) > git add "src/shared/utils/env.js"
(dry-run) > git commit -m "Add cache and Settings management capabilities, supportfor environment detection"

📝 使用示例

# 在所有 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 文件

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pygwalk-0.2.8.tar.gz (19.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pygwalk-0.2.8-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

File details

Details for the file pygwalk-0.2.8.tar.gz.

File metadata

  • Download URL: pygwalk-0.2.8.tar.gz
  • Upload date:
  • Size: 19.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pygwalk-0.2.8.tar.gz
Algorithm Hash digest
SHA256 d446d6930f38d3bc06d4f32cc83b49f27dafc4afba63d554c134a660ce594b57
MD5 d2189e85f14e63689422f73e31d29dd4
BLAKE2b-256 a9ff0a759515006607e5d9e6829a6f585728acdf051c4d264a9b913b3cdd1171

See more details on using hashes here.

Provenance

The following attestation bundles were made for pygwalk-0.2.8.tar.gz:

Publisher: python-publish.yml on ZeroKwok/gwalk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pygwalk-0.2.8-py3-none-any.whl.

File metadata

  • Download URL: pygwalk-0.2.8-py3-none-any.whl
  • Upload date:
  • Size: 20.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pygwalk-0.2.8-py3-none-any.whl
Algorithm Hash digest
SHA256 bc85113587b25e0d55588689f94b88bba9cdf01e6c80df7787ecd4324904bd5b
MD5 7dc1a5e75c0f1035d243f1fb719f01f6
BLAKE2b-256 6996790985552890ac73d2542a812b6202d1c2a4549e91515e92832883b64c4f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pygwalk-0.2.8-py3-none-any.whl:

Publisher: python-publish.yml on ZeroKwok/gwalk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page