3 releases
0.1.2 | Jan 24, 2024 |
---|---|
0.1.1 | Jan 17, 2024 |
0.1.0 | Jan 17, 2024 |
#2875 in Command line utilities
4.5MB
1K
SLoC
git-break-commits
git-break-commits
is an interactive Command Line Interface (CLI) tool that helps break existing Git commits and reorganize them into new commits.
Please refer to the following video to see how it works!
Installation
1. Installing from crates.io:
Since git-break-commits
is built with Rust, you need to install Rust first if it is not already on your system.
# Install Rust
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Configure `PATH`
$ export PATH="$HOME/.cargo/bin:$PATH"
Then, please use cargo install
command such as
cargo install git-break-commits
2. Installing from the source
Clone this repository and install git-break-commits
.
# Clone this repository
$ git clone https://github.com/vinnamkim/git-break-commits.git
# Install `git-break-commits`
$ cargo install --path git-break-commits
2. Installing from the pre-built binary
It is not supported yet.
Usage
To use git-break-commits
, run the following command in your terminal:
git-break-commits <depth> # Default <depth> is 1
This command will display the changes between HEAD~<depth>
and HEAD
in a CLI file navigator.
You can navigate it to select changes for a new commit.
The new commit will be stacked on top of HEAD~<depth>
after breaking all commits between HEAD~<depth>
and HEAD
.
Please refer to the following key mappings in this step:
- ↑: Move the cursor up
- ↓: Move the cursor down
- ←: Go to the parent directory
- →: Go to the subdirectory
- Space: Select or unselect a file/directory
- Enter: Save the current selection and go to write the commit message
- q or Ctrl + c: Quit without making any changes
- h: Open the help pop-up message
You should repeat this process until all changes between HEAD~<depth>
and HEAD
are resolved.
We believe that your commit history will be cleaner than before with this minimal effort!
License
This software is licensed under the MIT License.
Dependencies
~14–24MB
~367K SLoC