Clean obsolete branches on your git repository safely.
When a branch has been merged remotely, your local branch is not automatically deleted and will build up, making it harder to find your relevant branches.
This gem aims to fix that by doing using
git cherry to find
local branches which have been merged and delete them.
Install using RubyGems:
$ gem install git_snip
You can also this line to your application's
gem 'git_snip', require: false
And then execute:
You can list the available options from command line:
$ git snip help Usage: git-snip Options: -f, [--force] # Will refuse to run unless given -f or -n. -n, [--dry-run], [--no-dry-run] # Show branches which would be deleted. [--repo=<path>] # Path to git repository. # Default: . [--target=<branch>] # Branch to compare equivalence against. # Default: master [--ignore=one two three] # List of branches to ignore. [--full], [--no-full] # Show most branch information without cropping.
Show branches which would be deleted (accepts the same arguments as
$ git snip -n
Delete branches already merged to master:
$ git snip -f
Delete branches already merged to master and show more detailed listing of deleted branches:
$ git snip -f --full
Delete branches already merged to master, except staging and production:
$ git snip -f --ignore=staging production
Delete branches already merged to master on
$ git snip -f --repo=/some/repo/path
Delete branches already merged to
$ git snip -f --target=branch_a
If you want some arguments to always be set, add a file to the root of the
repository with name
.git_snip.yml. Specify the default arguments as YAML in
the file like this:
full: true ignore: - staging - production
The config arguments are overridden when the same arguments are set from command line.
- Fork it ( https://github.com/htanata/git_snip/fork )
- Create your feature branch (
git checkout -b my-new-feature)
- Commit your changes (
git commit -am 'Add some feature')
- Push to the branch (
git push origin my-new-feature)
- Create a new Pull Request