Skip to content

hugit-project/hugit

Repository files navigation

NOTE: Pre-alpha software! Under active development.

hugit

The humane Terminal UI for git!

The general philosophy is:

  • Live tracks changes in the repo, and updates the UI automatically
  • Help all available actions and their keybindings are displayed at all times
  • Logs are always accessible

Demo

hugit screencast

Installation

Features

Files

  • stage files
  • unstage files
  • checkout files
  • untrack files

Hunks

  • stage hunks
  • unstage hunks
  • discard hunks

Commits

  • show commit log
  • show commit
  • show current head
  • commit with message
  • show unmerged (unpushed) commits
  • ammend
  • rebase

Branches

  • show current branch
  • show local branches
  • checkout local branch
  • create and checkout new local branch
  • fetch remote branches

Remote

  • Push to -u origin <current-branch-name>
  • Change remote
  • Push to custom branch

Install

  • Install nvm
  • git clone https://github.com/hugit-project/hugit.git
  • cd hugit
  • nvm use 9.11.1
  • npm install
  • npx shadow-cljs release app

Issues

  • Install nodegit via yarn if npm complains: yarn add nodegit@0.24.3

Run

cd to a git repo, and run:

  • nvm use 9.11.1
  • node path/to/hugit/target/main.js

Develop

Compile

  • cd path/to/hugit
  • nvm use 9.11.1
  • npm start

This will:

  • start the compiler and watch for changes and recompile automatically
  • start a Clojure nREPL, connecting to which and running (user/repl) will start a ClojureScript REPL

Run

  • cd path/to/hugit
  • nvm use 9.11.1
  • node --inspect target/js/compiled/hugit.js to run the app

Changes to the hugit source should automatically reflect in the UI. hugit is used to develop hugit whenever possible! We will keep at it till we never have to use anything else.

Contributors

Thanks

License

Copyright 2019 Manisha Pillai, Divyansh Prakash

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this project except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.