2018-08-18 09:30:26 +02:00
|
|
|
# lazygit [![CircleCI](https://circleci.com/gh/jesseduffield/lazygit.svg?style=svg)](https://circleci.com/gh/jesseduffield/lazygit) [![codecov](https://codecov.io/gh/jesseduffield/lazygit/branch/master/graph/badge.svg)](https://codecov.io/gh/jesseduffield/lazygit) [![Go Report Card](https://goreportcard.com/badge/github.com/jesseduffield/lazygit)](https://goreportcard.com/report/github.com/jesseduffield/lazygit) [![GolangCI](https://golangci.com/badges/github.com/jesseduffield/lazygit.svg)](https://golangci.com) [![GoDoc](https://godoc.org/github.com/jesseduffield/lazygit?status.svg)](http://godoc.org/github.com/jesseduffield/lazygit) [![GitHub tag](https://img.shields.io/github/tag/jesseduffield/lazygit.svg)]()
|
2018-08-06 07:42:41 +02:00
|
|
|
|
2018-08-05 03:40:04 +02:00
|
|
|
A simple terminal UI for git commands, written in Go with the [gocui](https://github.com/jroimartin/gocui "gocui") library.
|
2018-06-10 04:49:12 +02:00
|
|
|
|
2018-08-11 11:11:55 +02:00
|
|
|
Are YOU tired of typing every git command directly into the terminal, but you're
|
|
|
|
too stubborn to use Sourcetree because you'll never forgive Atlassian for making
|
|
|
|
Jira? This is the app for you!
|
2018-06-09 11:30:59 +02:00
|
|
|
|
2018-08-05 06:13:21 +02:00
|
|
|
|
2018-08-18 12:51:15 +02:00
|
|
|
![Gif](/docs/resources/lazygit-example.gif)
|
2018-06-09 11:30:59 +02:00
|
|
|
|
2018-08-11 11:11:55 +02:00
|
|
|
* [Installation](https://github.com/jesseduffield/lazygit#installation)
|
|
|
|
* [Usage](https://github.com/jesseduffield/lazygit#usage),
|
|
|
|
[Keybindings](https://github.com/jesseduffield/lazygit/blob/master/docs/Keybindings.md)
|
|
|
|
* [Cool Features](https://github.com/jesseduffield/lazygit#cool-features)
|
|
|
|
* [Contributing](https://github.com/jesseduffield/lazygit#contributing)
|
|
|
|
* [Video Tutorial](https://www.youtube.com/watch?v=VDXvbHZYeKY)
|
|
|
|
* [Twitch Stream](https://www.twitch.tv/jesseduffield)
|
2018-08-11 01:43:22 +02:00
|
|
|
|
2018-06-10 04:49:12 +02:00
|
|
|
## Installation
|
2018-08-08 00:49:37 +02:00
|
|
|
|
2018-08-09 02:46:27 +02:00
|
|
|
### Homebrew
|
2018-08-09 02:46:57 +02:00
|
|
|
```sh
|
2018-08-09 02:46:27 +02:00
|
|
|
brew tap jesseduffield/lazygit
|
|
|
|
brew install lazygit
|
2018-08-09 02:46:57 +02:00
|
|
|
```
|
2018-08-09 02:46:27 +02:00
|
|
|
|
2018-08-05 20:31:50 +02:00
|
|
|
### Ubuntu
|
2018-08-11 11:11:55 +02:00
|
|
|
Packages for Ubuntu 16.04, 18.04 and 18.10 are available via [Launchpad PPA](https://launchpad.net/~lazygit-team).
|
2018-08-05 20:31:50 +02:00
|
|
|
|
2018-08-16 19:26:43 +02:00
|
|
|
**Release builds**
|
|
|
|
|
|
|
|
Built from git tags. Supposed to be more stable.
|
|
|
|
|
|
|
|
```sh
|
|
|
|
sudo add-apt-repository ppa:lazygit-team/release
|
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get install lazygit
|
|
|
|
```
|
|
|
|
|
|
|
|
**Daily builds**
|
|
|
|
|
|
|
|
Built from master branch once in 24 hours (or more sometimes).
|
2018-08-05 20:31:50 +02:00
|
|
|
|
|
|
|
```sh
|
|
|
|
sudo add-apt-repository ppa:lazygit-team/daily
|
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get install lazygit
|
|
|
|
```
|
|
|
|
|
2018-08-09 23:17:38 +02:00
|
|
|
### Void Linux
|
|
|
|
Packages for Void Linux are available in the distro repo
|
|
|
|
|
|
|
|
They follow upstream latest releases
|
|
|
|
|
|
|
|
```sh
|
|
|
|
sudo xbps-install -S lazygit
|
|
|
|
```
|
|
|
|
|
2018-08-09 16:13:24 +02:00
|
|
|
### Arch Linux
|
|
|
|
Packages for Arch Linux are available via AUR (Arch User Repository).
|
|
|
|
|
2018-08-11 11:11:55 +02:00
|
|
|
There are two packages. The stable one which is built with the latest release
|
|
|
|
and the git version which builds from the most recent commit.
|
2018-08-09 16:13:24 +02:00
|
|
|
|
2018-08-11 11:11:55 +02:00
|
|
|
* Stable: https://aur.archlinux.org/packages/lazygit/
|
|
|
|
* Development: https://aur.archlinux.org/packages/lazygit-git/
|
2018-08-09 16:13:24 +02:00
|
|
|
|
|
|
|
Instruction of how to install AUR content can be found here:
|
|
|
|
https://wiki.archlinux.org/index.php/Arch_User_Repository
|
|
|
|
|
2018-08-09 02:48:57 +02:00
|
|
|
### Binary Release (Windows/Linux/OSX)
|
2018-08-11 11:11:55 +02:00
|
|
|
You can download a binary release [here](https://github.com/jesseduffield/lazygit/releases).
|
2018-08-09 02:48:57 +02:00
|
|
|
|
|
|
|
### Go
|
2018-08-09 03:07:41 +02:00
|
|
|
```sh
|
|
|
|
go get github.com/jesseduffield/lazygit
|
|
|
|
```
|
2018-08-09 02:48:57 +02:00
|
|
|
|
|
|
|
Please note:
|
2018-08-11 11:11:55 +02:00
|
|
|
If you get an error claiming that lazygit cannot be found or is not defined, you
|
|
|
|
may need to add `~/go/bin` to your $PATH (MacOS/Linux), or `%HOME%\go\bin`
|
|
|
|
(Windows). Not to be mistaked for `C:\Go\bin` (which is for Go's own binaries,
|
|
|
|
not apps like Lazygit).
|
2018-08-08 00:49:37 +02:00
|
|
|
|
|
|
|
## Usage
|
2018-08-11 11:11:55 +02:00
|
|
|
Call `lazygit` in your terminal inside a git repository. If you want, you can
|
|
|
|
also add an alias for this with `echo "alias lg='lazygit'" >> ~/.zshrc` (or
|
|
|
|
whichever rc file you're using).
|
2018-08-09 02:21:45 +02:00
|
|
|
|
2018-08-11 11:11:55 +02:00
|
|
|
* Basic video tutorial [here](https://www.youtube.com/watch?v=VDXvbHZYeKY).
|
|
|
|
* List of keybindings
|
2018-08-18 12:53:26 +02:00
|
|
|
[here](/docs/Keybindings.md).
|
2018-08-08 00:49:37 +02:00
|
|
|
|
2018-06-10 04:49:12 +02:00
|
|
|
## Cool features
|
2018-08-11 11:11:55 +02:00
|
|
|
* Adding files easily
|
|
|
|
* Resolving merge conflicts
|
|
|
|
* Easily check out recent branches
|
|
|
|
* Scroll through logs/diffs of branches/commits/stash
|
|
|
|
* Quick pushing/pulling
|
|
|
|
* Squash down and rename commits
|
2018-06-10 04:49:12 +02:00
|
|
|
|
|
|
|
### Resolving merge conflicts
|
2018-08-18 12:53:26 +02:00
|
|
|
![Gif](/docs/resources/resolving-merge-conflicts.gif)
|
2018-06-10 04:49:12 +02:00
|
|
|
|
2018-06-10 04:52:55 +02:00
|
|
|
### Viewing commit diffs
|
2018-08-18 12:56:15 +02:00
|
|
|
![Viewing Commit Diffs](/docs/resources/viewing-commit-diffs.png)
|
2018-06-10 04:52:55 +02:00
|
|
|
|
2018-08-06 16:07:42 +02:00
|
|
|
## Milestones
|
2018-08-09 08:07:25 +02:00
|
|
|
- [x] Easy Installation (homebrew, release binaries)
|
2018-08-06 16:08:54 +02:00
|
|
|
- [ ] Configurable Keybindings
|
|
|
|
- [ ] Configurable Color Themes
|
|
|
|
- [ ] Spawning Subprocesses (help needed - have a look at https://github.com/jesseduffield/lazygit/pull/18)
|
2018-08-08 00:49:37 +02:00
|
|
|
- [ ] Maintainability
|
2018-08-07 07:50:56 +02:00
|
|
|
- [ ] Performance
|
2018-08-06 16:08:54 +02:00
|
|
|
- [ ] i18n
|
2018-08-06 16:07:42 +02:00
|
|
|
|
|
|
|
## Contributing
|
2018-08-07 14:37:35 +02:00
|
|
|
We love your input! Please check out the [contributing guide](CONTRIBUTING.md).
|
2018-08-16 02:37:23 +02:00
|
|
|
For contributor discussion about things not better discussed here in the repo, join the slack channel
|
|
|
|
|
2018-08-18 12:46:50 +02:00
|
|
|
[![Slack](/docs/resources/slack_rgb.png)](https://join.slack.com/t/lazygit/shared_invite/enQtNDE3MjIwNTYyMDA0LTM3Yjk3NzdiYzhhNTA1YjM4Y2M4MWNmNDBkOTI0YTE4YjQ1ZmI2YWRhZTgwNjg2YzhhYjg3NDBlMmQyMTI5N2M)
|
2018-08-06 16:07:42 +02:00
|
|
|
|
2018-06-10 04:49:12 +02:00
|
|
|
## Work in progress
|
2018-08-11 11:11:55 +02:00
|
|
|
This is still a work in progress so there's still bugs to iron out and as this
|
|
|
|
is my first project in Go the code could no doubt use an increase in quality,
|
|
|
|
but I'll be improving on it whenever I find the time. If you have any feedback
|
|
|
|
feel free to [raise an issue](https://github.com/jesseduffield/lazygit/issues)/[submit a PR](https://github.com/jesseduffield/lazygit/pulls).
|
2018-08-11 01:43:22 +02:00
|
|
|
|
|
|
|
## Social
|
2018-08-11 11:11:55 +02:00
|
|
|
If you want to see what I (Jesse) am up to in terms of development, follow me on
|
|
|
|
[twitter](https://twitter.com/DuffieldJesse) or watch me program on
|
|
|
|
[twitch](https://www.twitch.tv/jesseduffield).
|