jj-vcs

Installation
SKILL.md

Core concepts

jj is a new version control system that supports various VCSes, including Git, as file system backends. Therefore, while you may still be able to use Git commands, this is no longer recommended; you should use jj instead.

In jj, history is organized in units called changes (also known as revisions; in jj, revision and change are synonymous). Each change is a diff based on one or more ancestor changes. Every change has a change ID that remains fixed. You can make changes to files within a change, resulting in a new commit hash, but the change ID will remain the same. This aligns with the concept of changes evolving over time.

The current workspace resides in a revision we commonly refer to as the working copy. The ultimate ancestor of all revisions is the root revision with change ID zzzzzzzz.

When you need to save the current diff as a revision, simply create a new revision based on the current revision (or any other revision).

$ jj log
@  abcdefgh [author] [time]
(no description set)
◆  zzzzzzzz root() 00000000
$ jj new abcdefgh
Working copy  (@) now at: qwertyui [hash] (empty) (no description set)
Parent commit (@-)      : abcdefgh [hash] (no description set)
Installs
2
First Seen
11 days ago