A command-line tool that helps you clean up Git branches that have been merged into master.
This is a fork that adds Python 3 support (in addition to Python 2). The original is at https://github.com/arc90/git-sweep.
The problem
Your master branch is typically where all your code lands. All features branches are meant to be short-lived and merged into master once they are completed.
As time marches on, you can build up a long list of branches that are no longer needed. They’ve been merged into master, what do we do with them now?
The answer
Using git-sweep you can safely remove remote branches that have been merged into master.
To install it run:
$ pip install git-sweep3k
Try it for yourself (safely)
To see a list of branches that git-sweep detects are merged into your master branch:
The --dry-run option doesn’t make any changes to your repository:
$ git sweep --dry-run Fetching from the remote These branches have been merged into master: branch1 branch2 branch3 branch4 branch5 To delete them, run again without --dry-run
If you are happy with the list, you can run the command that deletes these branches from the remote:
$ git sweep Fetching from the remote These branches have been merged into master: branch1 branch2 branch3 branch4 branch5 Delete these branches? (y/n) y deleting branch1 (done) deleting branch2 (done) deleting branch3 (done) deleting branch4 (done) deleting branch5 (done) All done! Tell everyone to run `git fetch --prune` to sync with this remote. (you don't have to, yours is synced)
Note: this can take a little time, it’s talking over the tubes to the remote.
You can also give it a different name for your remote and master branches:
$ git sweep --dry-run --master=develop --origin=github ...
Tell it to skip the git fetch that it does by default:
$ git sweep --dry-run --no-fetch These branches have been merged into master: branch1 To delete them, run again without --dry-run
Make it skip certain branches:
$ git sweep --dry-run --skip=develop Fetching from the remote These branches have been merged into master: important-upgrade upgrade-libs To delete them, run again without --dry-run
Once git-sweep finds the branches, you’ll be asked to confirm that you wish to delete them:
Delete these branches? (y/n)
You can use the --force option to bypass this and start deleting immediately:
$ git sweep --skip=develop --force Fetching from the remote These branches have been merged into master: important-upgrade upgrade-libs deleting important-upgrade (done) deleting upgrade-libs (done) All done! Tell everyone to run `git fetch --prune` to sync with this remote. (you don't have to, yours is synced)
Requirements
Git >= 1.7
Python >= 2.6 or >= 3.2
License
Friendly neighborhood MIT license.
Release files for git-sweep3k 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| git-sweep3k-0.3.1.tar.gz | 4.7 kB | Details |
Release files / git-sweep3k-0.3.1.tar.gz
| Download URL | git-sweep3k-0.3.1.tar.gz |
|---|---|
| Size | 4.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e3244b72d5140f77842f1125376a85053737b75cd2502a32860d5a65638f99a8
|
|
BLAKE2b-256 checksum How to use checksums |
121bef0f82ac34778c39b388771df670d548f56e54f0113f2faca4404eb13f54
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |