Skip to content

Repository files navigation

Git (git)Subversion (svn)CVSMercurial (hg)Perforce (pf)Jujutsu (jj)
🚧🚧🚧🚧🚧

what

  • a unified, modernized and sanitized frontend for a Source Control System like Git, SVN, CVS, etc

why

  • a semantically, logically and humanly dead-simple syntax that makes sense at 2AM
  • has output as JSON which allows integration into UIs or CLI tools
  • allows 100% of daily operations by knowing a simplified syntax that can work accross different source control systems if needed

why not

  • if you have your universe already tuned-up and are happy then this project may not be of interest
  • if you need things like git cherry-pick / git bisect / git fsck then this is not for you, but you can still run that side by side

how

  • autodetects the Version Control System:
    • .git - for Git
    • .svn - for Subversion
    • etc
  • basic concepts
    • workflow
      • REPO
        • BRANCH
          • COMMITS (permanent change)
          • CHANGE (temporary CHANGE, gets converted to COMMIT)
          • STASH (hidden CHANGE you don't want into a COMMIT, or when you want a clean BRANCH)
    • release
      • TAG - label a COMMIT, ex: v1.0.0 or v2026.04.03

commands

commandinfo
sc helpshows help
sc config listshow backend configuration, grouped by global + local
sc config set --name "First Last" --email first@example.comset backend user name + email
sc config set --url git@github.com:user/ --instead-of https://github.com/user/set a git insteadof rewrite rule
sc repo infoshow REPO details
sc repo init --backend gitinit a REPO
sc repo clone --url https://user.github.com/project.gitclone a REPO
sc branch listlist local BRANCHES
sc branch list --remotelist local BRANCHES + remote
sc branch create --name feature-Acreate a new BRANCH
sc branch delete --name feature-Adelete a BRANCH
sc branch switch --name feature-Aswitch a BRANCH
sc branch merge --name feature-Amerge a BRANCH
sc branch rebase --name feature-Arebase a BRANCH
sc branch prprint browser URL to create a PR from the current BRANCH
sc commit listlist local COMMITS
sc commit pulldownload + merge COMMITS
sc commit undoundo last COMMIT
sc commit save --note "message"convert local CHANGE to COMMIT
sc commit pushpush local COMMITS to server
sc change listlist local CHANGES
sc change add --file file.textadd to local CHANGES
sc change remove --file file.textremove from local CHANGES
sc change reset --file file.textreset a file to its original state
sc change diffshow the diff
sc stash listlist STASHES
sc stash add --name stash-one --file file.textadd to STASH
sc stash remove --name stash-one --file file.textremove from STASH
sc stash delete --name stash-onedelete STASH
sc tag listlist TAGS
sc tag pullpull TAGS
sc tag create --name v2026.04.03create a new TAG
sc tag delete --name v2026.04.03delete a TAG
sc tag pushpush TAGS

About

source control made easy

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages