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.6.tar.gz (18.7 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.6-py3-none-any.whl (19.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pygwalk-0.2.6.tar.gz
  • Upload date:
  • Size: 18.7 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.6.tar.gz
Algorithm Hash digest
SHA256 eae0f0b6cccbe6dc7bd979296be3c1a5ce7f937e037cc4feedfb35d9c325beab
MD5 a8a08052aa3ef275156e2b451e30b139
BLAKE2b-256 2e0dd7bb4d6c1b64ca251a3b933f31f21c13c87a2536b28476935611bac4a986

See more details on using hashes here.

Provenance

The following attestation bundles were made for pygwalk-0.2.6.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.6-py3-none-any.whl.

File metadata

  • Download URL: pygwalk-0.2.6-py3-none-any.whl
  • Upload date:
  • Size: 19.7 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 881ca80fc7d0707f2be65ec72adb4e4362b3ab068f66dac7cf861fe7196d16f4
MD5 5eb770301d95a02a61088f4d1b58836c
BLAKE2b-256 ce5c3b3f2b55068b6c0766b7e31622e0764d6b5309aba7c6e797a96a13e3b745

See more details on using hashes here.

Provenance

The following attestation bundles were made for pygwalk-0.2.6-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