Manage git projects en masse
Project description
Manage git projects en masse
Overview
With mgit, you can pull/fetch several projects at once, and also auto-cleanup dangling branches (from past pull requests).
A colored output is provided if possible, mgit should come in handy in general for:
quickly getting an overview of what’s up with N git projects
fetch/pull N git objects at once
clone missing projects (useful if you tend to clone projects from same remote in one common folder)
Example usage
mgit can show you what’s the status of all your git projects in a folder, for example my repos:
~/dev/github: mgit ~/dev/github: 4 github/zsimic mgit: [master] up to date pickley: [master] 1 diff, up to date* last fetch 3w 4d ago runez: [master] up to date* last fetch 3w 4d ago setupmeta: [master] up to date* last fetch 4d 23h ago
Here we can see that I have 4 repos in ~/dev/github (and all 4 come from github/zsimic), 3 of them haven’t been fetched in a while. We can fetch them all at once with --fetch (or -f):
~/dev/github: mgit --fetch ~/dev/github: 4 github/zsimic mgit: [master] up to date pickley: [master] 1 diff, up to date runez: [master] up to date setupmeta: [master] up to date
Now all projects have been refreshed, and we can see there’s nothing new (otherwise we’d see a mention of the form 2 commits behind). The output also shows that one of the projects has uncommitted files.
Modified files are shown if only one project is in scope, for example:
~/dev/github: mgit pickley pickley: [master] 1 diff, up to date M tox.ini
Above, we can see that the modified file in question is tox.ini in that project. We can get the same effect using the -verbose (or -v) flag, like for example with 2 projects with modified files:
~/dev/github: mgit -v ~/dev/github: 4 github/zsimic mgit: [master] 1 diff, up to date M README.rst pickley: [master] 1 diff, up to date M tox.ini runez: [master] up to date setupmeta: [master] up to date
Synopsis:
~/dev/github: mgit --help Usage: mgit [OPTIONS] [TARGET] Manage git projects en masse Options: --version Show the version and exit. --debug Show debugging information --color / --no-color Use (or not) colors (on by default on tty) --ignore action[:what] Show/add/remove/clear ignores --clean [show|local|remote|all|reset] Auto-clean branches -a, --all Examine all repos, even missing git checkouts -f, --fetch Fetch from all remotes -p, --pull Pull from tracking remote, clone missing with --all -s, --short / -v, --verbose Short/verbose output -cs Handy shortcut for '--clean show' -cl Handy shortcut for '--clean local' -cr Handy shortcut for '--clean remote' -ca Handy shortcut for '--clean all' -h, --help Show this message and exit. Advanced usage: --clean show Show which local/remote branches can be cleaned --clean local Clean local branches that were deleted from their corresponding remote --clean remote Clean merged remote branches --clean all Clean local and merged remote branches --clean reset Do a git --reset --hard + clean -fdx (nuke all changes, get back to pristine state) --ignore show Show ignores currently in effect --ignore add 'hackday.*' Add an ignore regex, for example here 'hackday.*' --ignore remove 'hackday.*' Remove an ignore regex, for example here 'hackday.*' --ignore clean Remove all ignores
Installation
Easiest way to get mgit is via pickley or pipsi:
pickley install mgit pipsi install mgit
You can also compile from source:
git clone https://github.com/zsimic/mgit.git cd mgit tox -e venv source .venv/bin/activate
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
Built Distribution
File details
Details for the file mgit-1.0.2.tar.gz
.
File metadata
- Download URL: mgit-1.0.2.tar.gz
- Upload date:
- Size: 21.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9bf30e4a95d0d23f48f8c94402ae22845537b0af980ef306e739d6f9cd0a96ca |
|
MD5 | 6cf448637f45b1278149f51a635a81a8 |
|
BLAKE2b-256 | f08ea3a70ff72eb05040cd1861a144cfb50375efec245e4f96c29cf4812d76b0 |
File details
Details for the file mgit-1.0.2-py2.py3-none-any.whl
.
File metadata
- Download URL: mgit-1.0.2-py2.py3-none-any.whl
- Upload date:
- Size: 23.7 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 658e7ac0e97b5908ca987952ccc4670120bbf022d37eb5f3d595ac30aaee44be |
|
MD5 | 5ff48ebed5e7fb1a57534a0bcb4453a6 |
|
BLAKE2b-256 | fa481d28ff09226577f84220b5db5df99851d174a38bfe5a3bd2d22e2b09f2a7 |