arxanas/git-branchless

Possible new commands

arxanas opened this issue · 1 comments

  • git top/git bottom to traverse an entire series of commits. (Names need to be revised, since the ordering may be reverse of what's expected.)
  • Interactive git checkout, operating on nodes on the smartlog graph. Could include fuzzy-filtering or EasyMotion-style commit selection.
  • git move as a replacement for git rebase, to move entire subtrees. Proposal: --dest, --base, --restack, and --main flags.
  • git sync XXX to rebase in-progress work onto main branch (or git sync --all, or git sync --onto).
  • git stage to interactively stage a commit. Should see what tig does for this.
  • git split to split the current commit (or a provided commit) using repeated git stages. Splitting should not check out to a different commit, since it shouldn't affect the working copy.
  • git absorb (there's already an implementation of git absorb out there, but it doesn't work unless you have a branch checked out). Absorbing should not check out to a different commit, since it shouldn't affect the working copy.
  • git amend to amend the current commit contents, but not its message. May automatically restack, or have an option to automatically restack?
  • git reword to amend the current commit message, but not its contents. Should be able to safely automatically restack, since it doesn't touch the working copy.
  • git uncommit as a replacement for git reset --soft HEAD^, since the latter is unergonomic, and it doesn't hide the given commit from the smartlog. It may be desirable to unstage the previously-committed changes as well; I've never personally wanted to keep them staged after a git reset --soft HEAD^.

git absorb (there's already an implementation of git absorb out there, but it doesn't work unless you have a branch checked out).

https://github.com/torbiak/git-autofixup/ should do the job