All Projects → MitMaro → Git Interactive Rebase Tool

MitMaro / Git Interactive Rebase Tool

Licence: other
Native cross-platform full feature terminal-based sequence editor for git interactive rebase.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Git Interactive Rebase Tool

Roslynpad
A cross-platform C# editor based on Roslyn and AvalonEdit
Stars: ✭ 1,310 (+66.67%)
Mutual labels:  cross-platform, editor
Hozz
[Development indefinitely suspended] A better way to manage your hosts.
Stars: ✭ 937 (+19.21%)
Mutual labels:  cross-platform, editor
Docker Emacs
Dockerized Emacs (GUI)
Stars: ✭ 224 (-71.5%)
Mutual labels:  cross-platform, editor
Xpiks
Cross-Platform Image Keywording Software for microstock photographers and illustrators
Stars: ✭ 81 (-89.69%)
Mutual labels:  cross-platform, editor
Notepanda
📃 A simple cross-platform notepad. Based on Qt and C++.
Stars: ✭ 134 (-82.95%)
Mutual labels:  cross-platform, editor
Komodoedit
Komodo Edit is a fast and free multi-language code editor. Written in JS, Python, C++ and based on the Mozilla platform.
Stars: ✭ 1,972 (+150.89%)
Mutual labels:  cross-platform, editor
Micro
A modern and intuitive terminal-based text editor
Stars: ✭ 18,526 (+2257%)
Mutual labels:  cross-platform, editor
Uncolored
(Un)colored — Next generation desktop rich content editor that saves documents with themes. HTML & Markdown compatible. For Windows, OS X & Linux. — http://n457.github.io/Uncolored/
Stars: ✭ 733 (-6.74%)
Mutual labels:  editor
Creeper
🐾 Creeper - The Next Generation Crawler Framework (Go)
Stars: ✭ 762 (-3.05%)
Mutual labels:  cross-platform
Stackedit.js
Add StackEdit to any website
Stars: ✭ 724 (-7.89%)
Mutual labels:  editor
Qimgv
Qt5 image viewer with optional video support
Stars: ✭ 714 (-9.16%)
Mutual labels:  cross-platform
Suplemon
🍋 Console (CLI) text editor with multi cursor support. Suplemon replicates Sublime Text like functionality in the terminal. Try it out, give feedback, fork it!
Stars: ✭ 734 (-6.62%)
Mutual labels:  editor
Smartsql
SmartSql = MyBatis in C# + .NET Core+ Cache(Memory | Redis) + R/W Splitting + PropertyChangedTrack +Dynamic Repository + InvokeSync + Diagnostics
Stars: ✭ 775 (-1.4%)
Mutual labels:  cross-platform
Vue Simplemde
📝 Vue SimpleMDE - use simplemde with vue.js
Stars: ✭ 730 (-7.12%)
Mutual labels:  editor
Essential Ui Kit For Xamarin.forms
Free and beautiful XAML template pages for Xamarin.Forms apps.
Stars: ✭ 780 (-0.76%)
Mutual labels:  cross-platform
Cf Tool
📊 Codeforces CLI (Submit, Parse, Test, etc.). Support Contests, Gym, Groups, acmsguru, Windows, macOS, Linux, 7 MB
Stars: ✭ 723 (-8.02%)
Mutual labels:  cross-platform
Scintillanet
A Windows Forms control, wrapper, and bindings for the Scintilla text editor.
Stars: ✭ 781 (-0.64%)
Mutual labels:  editor
Fkill Cli
Fabulously kill processes. Cross-platform.
Stars: ✭ 6,418 (+716.54%)
Mutual labels:  cross-platform
React Native Zss Rich Text Editor
React Native rich text editor based on ZSSRichTextEditor
Stars: ✭ 755 (-3.94%)
Mutual labels:  editor
Splat
Makes things cross-platform
Stars: ✭ 753 (-4.2%)
Mutual labels:  cross-platform

Crates.io GitHub license Coverage Status

Git Interactive Rebase Tool

Native cross-platform full feature terminal based sequence editor for interactive rebase in Git 1.7.8+.

Git Interactive Rebase Tool

This is the documentation for the development build. For the current stable release, please use the 2.0.x documentation.

Table of Contents

Features

Cross platform

Built and works on Linux, macOS, Windows and BSD.

Set action

Easily set the action to pick, squash, fixup, edit, reword and drop.

Basic operations

Reorder rebase list

Reorder the action list with a single key press.

Reorder items

Multiline modification

Change action and reorder multiple lines at once with visual mode.

Visual mode

Toggle breaks

Toggle breaks

View commit details and diff

View the commit overview and a full commit diff with a press of a key.

Commit overview

Commit diff

Unicode and Emoji support

Unicode support

Emoji support

Edit exec command

Easily edit the command that is run by an exec command.

exec action command edit

Edit in external editor

Need to do something in your Git editor? Quickly shell out to your editor, make a change and return to the tool.

Shell out to editor

Setup

Most systems

git config --global sequence.editor interactive-rebase-tool

Windows

Standard Command Pompt

git config --global sequence.editor "'C:/path/to/interactive-rebase-tool.exe'"

GitBash

GitBash requires the use of winpty in order to work correctly, so to set the editor use:

git config --global sequence.editor "winpty /c/path/to/interactive-rebase-tool.exe"

Notes

Windows before version 10 has serious rendering issues with saturated darker colors, such as the blue color that is entirely illegible on modern displays. While it is possible to avoid using saturated colors, a better option is to update the theme using Microsoft's ColorTool.

Temporary Override

You can temporarily use a different sequence editor by using the GIT_SEQUENCE_EDITOR environment variable:

GIT_SEQUENCE_EDITOR=emacs git rebase -i [<upstream> [<branch>]]

Usage

interactive-rebase-tool <rebase-todo-filepath>
interactive-rebase-tool --help
interactive-rebase-tool --version

Getting Help

The tool has built-in help that can be accessed by hitting the ? key.

Default Key Bindings

Key bindings can be configured, see configuration for more information.

Key Mode Description
Up All Move selection up
Down All Move selection down
Page Up All Move selection up five lines
Page Down All Move selection down five lines
q Normal Abort interactive rebase
Q Normal Immediately abort interactive rebase
w Normal Write interactive rebase file
W Normal Immediately write interactive rebase file
? All Show help
c Normal Show commit information
j All Move selected commit(s) down
k All Move selected commit(s) up
b Normal Toggle break action
p All Set selected commit(s) to be picked
r All Set selected commit(s) to be reworded
e All Set selected commit(s) to be edited
s All Set selected commit(s) to be squashed
f All Set selected commit(s) to be fixed-up
d All Set selected commit(s) to be dropped
E Normal Edit the command of an exec action
v All Enter and exit visual mode
d Diff Show full commit diff
Control+z All Undo the previous change
Control+y All Redo the previously undone change

Development

Install Rust

To start developing the project, you will need to install Rust, which can generally be done using rustup.

Setup

Debian and derivatives

If you plan to build a release package you will need pkg-config and liblzma-dev. They can be installed using apt:

sudo apt install pkg-config liblzma-dev

Build and run

Use cargo to build and run the project. From the project root run:

# only build
cargo build --release
# build and run
cargo run -- <path-to-git-rebase-todo-file>

Tests

Automated tests are available for all features and ran be run with:

cargo test

Linting

The project uses Clippy to provide additional linting, run with:

./scripts/lint.bash

Format

This project uses rust-fmt to provide a consistent format. A helpful script will ensure that all files are formatted correctly:

./scripts/format.bash

Release

Install Cargo Deb
cargo install cargo-deb
Building
cargo build --release
cargo deb

A deb file will be written to target/debian/interactive-rebase-tool_*.deb.

Related Projects

License

Git Interactive Rebase Tool is released under the GPLv3 license. See LICENSE.

See Third Party Licenses for licenses of the third-party libraries used by this project.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].