gitless-vcs / gitless

A simple version control system built on top of Git
https://gitless.com
MIT License
1.92k stars 107 forks source link

`gl commit` and multiple purposes of committing #207

Open mheiber opened 5 years ago

mheiber commented 5 years ago

It doens't seem that Gitless changes anything from Git's concept of a "commit," but committing serves at least the following distinct purposes, with very different workflows for each:

  1. When on master, commits serve as history for the purposes of backing out bad changes, debugging, and code archeology.
  2. When working on a PR, committing has little to do with commits, as (good) PR authors regularly fiddle with their branches in ways that change the commit hashes on the branch. The key concept here (in my opinion) is an "annotated diff" and the tools for working with them are rebasing (to update with master so the diff makes sense) and curation (interactive rebase to squash and reword).

The biggest conceptual issues users intermediate users have with Git, in my opinion, are the ones that make interactive rebasing (diff curation) and navigating the reflog (undo!!) seem like advanced features, rather than simple rewriting tools that can be part of daily workflows. It would be great if Gitless could unlock this core part of Git for more users.