ProductPromotion
Logo

Ruby

made by https://0x3d.site

GitHub - matt-harvey/git_curate: ✂️ Peruse and delete git branches ergonomically
✂️ Peruse and delete git branches ergonomically. Contribute to matt-harvey/git_curate development by creating an account on GitHub.
Visit Site

GitHub - matt-harvey/git_curate: ✂️ Peruse and delete git branches ergonomically

GitHub - matt-harvey/git_curate: ✂️ Peruse and delete git branches ergonomically

git curate

Gem Version Build Status Coverage Status Awesome

Motivation

After a while, my local repo becomes cluttered with branches, and git branch outputs an awkwardly long list. I want to delete some of those branches to bring that list back under control; but I can’t always remember which branches I want to keep from the branch names alone; and inspecting them one at a time and then running git branch -D in a separate step, is painful.

git curate is intended to ease this pain. It steps you through the local branches of a repo one at a time, outputting the following information about each:

  • Last commit date
  • Last commit hash
  • Last commit author
  • Last commit subject
  • Whether the branch has been merged into the current HEAD
  • The status of the branch relative to the upstream branch it is tracking (if any)

You can then select whether to delete or keep each branch as you go.

NOTE git curate does not run git fetch prior to generating its output. If you want to be sure that the “Status vs upstream” column reflects the latest state of the upstream branches as per their remote repository, you should run git fetch first.

Installation

You’ll need Ruby (v3.1.0 or greater) installed. Run:

gem install git_curate

to install the executable.

Note git_curate uses the rugged library, which comes with a native C extension, libgit2. Installation via gem install git_curate will trigger this extension to be compiled; this may take a few minutes, depending on your machine.

If you receive an error like ERROR: Failed to build gem native extension, it’s probably because your system lacks certain prerequisites needed for building libgit2, for example cmake. To fix this, first follow the installation instructions for rugged; then run gem install git_curate again.

Usage

From within a git repo, run:

git curate

This will step you through your local branches one at a time, outputting some information about each, and asking you whether to keep or delete each branch.

At each branch, enter “k”—or simply press Enter—to keep the branch and move to the next one; or enter “d” to select the branch for deletion.

Entering “e” will end the session immediately, deleting all selected branches; and “a” will abort the session without deleting any branches. Once the final branch has been considered, any selected branches will be immediately deleted.

Note the branch you are currently on will not be included in the list, as git does not allow you to delete the branch you’re on. (The same applies to any branches that are currently checked out in other worktrees.)

If you just want to view the information about your local branches without stepping through them interactively, enter git curate --list or git curate -l. Your current branch will be included in this list in this case.

You can also pass --merged to see only those branches merged into current HEAD; or --no-merged to see only those branches not merged into current HEAD.

Contributing

Bug reports and pull requests are welcome on GitHub.

To start working on git_curate, git clone and cd into your fork of the repo, then run bin/setup to install dependencies.

To run the test suite, run bundle exec rake spec. For a list of other Rake tasks, run bundle exec rake -T.

License

The gem is available as open source under the terms of the MIT License.

More Resources
to explore the angular.

mail [email protected] to add your project or resources here 🔥.

Related Articles
to learn about angular.

FAQ's
to learn more about Angular JS.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory