jesseduffield / lazygit Goto Github PK
View Code? Open in Web Editor NEWsimple terminal UI for git commands
License: MIT License
simple terminal UI for git commands
License: MIT License
Call command: go get github.com/jesseduffield/lazygit
Execute lazygit command in iTerm2
prompt: -bash: lazygit: command not found
I just pulled latest version but can't run it
PS C:\Users\vovik> go get github.com/jesseduffield/lazygit
PS C:\Users\vovik> lazygit
lazygit : The term 'lazygit' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ lazygit
+ ~~~~~~~
+ CategoryInfo : ObjectNotFound: (lazygit:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
For this software to be shipped somewhere on Linux distributions, you'll need to cut a release! :)
After running sudo apt-get update
E: The repository 'http://ppa.launchpad.net/lazygit-team/daily/ubuntu artful Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
I'm on Ubuntu 17.10 Artful. Guess it's time to upgrade :D
hi there,
Is there a settings files so I can add vi key bindings?
Thanks
It would be nice to have commitizen integration, or a similar feature that allows you to use predefined commit messages.
For reference :
Lazygit doesn't support i18n?
Is there support for partial file staging? Like hunks or lines?
Hi, I got "sh: 8: [[: not found" in branches section and top of the window. zsh version zsh 5.4.2 (x86_64-ubuntu-linux-gnu). lazygit is on b80e811. How can I fix that error?
Is there a way to distribute binaries in this project by using the releases/tags for it?
It would heavily improve the installation for people not familiar with go and people that don't have a working go setup and just want to build a simple package for a binary.
Hi would it be possible to add a tree view to lazygit that way you can visually see branch history
git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
Took me a while to figure it out. In case someone is looking for this.
On mac, fn + down or fn + up.
Congrats on lazygit, its great.
One of the slowest workflows with git is that to merge develop/master etc into your current branch you have to stash/commit current, checkout master, pull, switch back to current, then merge. This is awfully slow in SourceTree.
There are two quicker ways on the command line, discussed in the stackoverflow answers here:
https://stackoverflow.com/a/34344502/2102158
git pull origin master
- this effectively merges the origin version of develop into your branch in one command
https://stackoverflow.com/a/45697574/2102158
git fetch origin master:master
git merge master
Which updates the local master to the remote without a checkout, then merges it
In lazygit, I reckon the best would be to have a one key command to update a non checkout branch to latest - eg run git fetch origin master:master
on it
Thanks for consideration.
Had a large un-staged file in the repo and while scrolling the file-list in lazygit it seemed like everything gets loaded into memory, even though the preview only shows a couple dozen of lines.
Could you maybe use use a different approach instead of reading everything?
I follow the instructions as given, but the reaction is as follows: package lazygit cannot be found.
When i open lazygit and press on 's' (to open sublime) in crashes with this error:
panic: No changed files
goroutine 1 [running]:
log.Panicln(0xc42005df08, 0x1, 0x1)
/home/ron/go1.9.2/src/log/log.go:340 +0xc0
main.run()
/home/ron/go/src/github.com/jesseduffield/lazygit/gui.go:325 +0x1de
main.main()
/home/ron/go/src/github.com/jesseduffield/lazygit/main.go:68 +0xfc
Congratulations :-) it's a nice job! Sure this tool must fasten git manipulation!
I needed ~/go/bin
added to my $PATH
in order to use lazygit.
Since I know absolutely nothing about Golang, it took me quite some time to figure out where the heck Go stuffs its binaries installed via go get
. Maybe you could make a brief note about this in the README?
I'm getting: exec: "bash": executable file not found in %PATH%
Fresh pull from master ~ 5 minutes ago
I’ll just draw these, remark that if you collapsed adjacent panel borders you’d save roughly four rows and one column and generally make it more pleasant to look at, and leave it at that; decide what you will with it.
┌─Title────────────────┐┌─Title────────────────┐
│Contents ││Contents │
└──────────────────────┘│ │
┌─Title────────────────┐│ │
│Contents ││ │
└──────────────────────┘└──────────────────────┘
┏━Title━━━━━━━━━━━━━━━━┱─Title────────────────┐
┃Contents ┃Contents │
┡━Title━━━━━━━━━━━━━━━━┩ │
│Contents │ │
└──────────────────────┴──────────────────────┘
(OK, one more remark—note I used heavy box drawing characters to highlight the active pane rather than using bright white instead of dim white; that will probably be necessary.)
Hellooo,
Looks like a cool and useful project 👍 😄
In the readme, you have this:
If you want, you can also add an alias for this with echo "alias lg='lazygit' > ~/.zshrc (or whichever rc file you're using)
This seems to be missing the closing quote for the string and it_ will clobber the file 😱
Should it be echo "alias lg='lazygit'" >> ~/.zshrc
?
FYI, I've created an AUR package:
It could be better supporting dep on building process. Installing dependencies on global stash is not that preferred way for building go executables.
Hi @jesseduffield,
This is amazing code, however is not clear under what license its published. Can you please clarify?
[]s
In the installation part of the README.md, the use of the redirect operator >
will cause the entire files contents to be overwritten. It should be changed to the append operator >>
. If someone were to copy and paste it without version controlled dot files, it could lead to a very sad programmer.
echo "alias lg='lazygit' > ~/.zshrc
to
echo "alias lg='lazygit'" >> ~/.zshrc
I'm not sure why my builds aren't making binaries. Could anybody give me some pointers?
output:
0.79s$ git clone --depth=50 --branch=v0.1.4 https://github.com/jesseduffield/lazygit.git jesseduffield/lazygit
Cloning into 'jesseduffield/lazygit'...
remote: Counting objects: 773, done.
remote: Compressing objects: 100% (410/410), done.
remote: Total 773 (delta 372), reused 736 (delta 341), pack-reused 0
Receiving objects: 100% (773/773), 960.14 KiB | 3.83 MiB/s, done.
Resolving deltas: 100% (372/372), done.
Note: checking out '1730089b09b623d55227ddcc8ce02ad57d7f2cf0'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
$ cd jesseduffield/lazygit
$ git checkout -qf v0.1.4
Setting environment variables from .travis.yml
$ export LATEST=true
9.90s$ GIMME_OUTPUT="$(gimme 1.x | tee -a $HOME/.bashrc)" && eval "$GIMME_OUTPUT"
go version go1.11beta3 linux/amd64
$ export GOPATH=$HOME/gopath
$ export PATH=$HOME/gopath/bin:$PATH
$ mkdir -p $HOME/gopath/src/github.com/jesseduffield/lazygit
$ rsync -az ${TRAVIS_BUILD_DIR}/ $HOME/gopath/src/github.com/jesseduffield/lazygit/
$ export TRAVIS_BUILD_DIR=$HOME/gopath/src/github.com/jesseduffield/lazygit
$ cd $HOME/gopath/src/github.com/jesseduffield/lazygit
0.01s
$ gimme version
v1.5.0
$ go version
go version go1.11beta3 linux/amd64
go.env
$ go env
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/travis/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/travis/gopath"
GOPROXY=""
GORACE=""
GOROOT="/home/travis/.gimme/versions/go1.11beta3.linux.amd64"
GOTMPDIR=""
GOTOOLDIR="/home/travis/.gimme/versions/go1.11beta3.linux.amd64/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build399365960=/tmp/go-build -gno-record-gcc-switches"
before_install.1
0.94s$ curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
ARCH = amd64
OS = linux
Will install into /home/travis/gopath/bin
Fetching https://github.com/golang/dep/releases/latest..
Release Tag = v0.5.0
Fetching https://github.com/golang/dep/releases/tag/v0.5.0..
Fetching https://github.com/golang/dep/releases/download/v0.5.0/dep-linux-amd64..
Setting executable permissions.
Moving executable to /home/travis/gopath/bin/dep
before_install.2
0.01s$ chmod +x $GOPATH/bin/dep
before_install.3
0.01s$ ls $GOPATH/bin/
dep
$ dep ensure
install
0.00s$
16.05s$ if [ "${LATEST}" = "true" ]; then gox -os="linux darwin windows" -arch="amd64" -output="lazygit.." -ldflags "-X main.Rev=`git rev-parse --short HEAD`" -verbose ./...; fi
Number of parallel builds: 1
--> windows/amd64: github.com/jesseduffield/lazygit
--> linux/amd64: github.com/jesseduffield/lazygit
--> darwin/amd64: github.com/jesseduffield/lazygit
The command "if [ "${LATEST}" = "true" ]; then gox -os="linux darwin windows" -arch="amd64" -output="lazygit.." -ldflags "-X main.Rev=`git rev-parse --short HEAD`" -verbose ./...; fi" exited with 0.
dpl_0
1.85s$ rvm $(travis_internal_ruby) --fuzzy do ruby -S gem install dpl
Fetching: dpl-1.9.8.gem (100%)
Successfully installed dpl-1.9.8
1 gem installed
3.64s
dpl.1
Installing deploy dependencies
Fetching: multipart-post-2.0.0.gem (100%)
Successfully installed multipart-post-2.0.0
Fetching: faraday-0.15.2.gem (100%)
Successfully installed faraday-0.15.2
Fetching: public_suffix-3.0.2.gem (100%)
Successfully installed public_suffix-3.0.2
Fetching: addressable-2.5.2.gem (100%)
Successfully installed addressable-2.5.2
Fetching: sawyer-0.8.1.gem (100%)
Successfully installed sawyer-0.8.1
Fetching: octokit-4.6.2.gem (100%)
Successfully installed octokit-4.6.2
Fetching: mime-types-2.99.3.gem (100%)
Successfully installed mime-types-2.99.3
Fetching: dpl-releases-1.9.8.gem (100%)
Successfully installed dpl-releases-1.9.8
8 gems installed
dpl.2
Preparing deploy
Logged in as Jesse Duffield
Deploying to repo: jesseduffield/lazygit
Current tag is: v0.1.4
dpl.3
Deploying application
Done. Your build exited with 0.
I've noticed there's keybindings set for specific editors such as "s" for "sublime" and "v" for "vscode". If I may suggest, instead of making a new keybinding for every editor, maybe it might be better to make one keybinding for opening whatever editor is specified with the $EDITOR, $GIT_EDITOR, or $VISUAL environment variable. This is what git does to determine which editor to use.
When signing a commit with a gpg key
https://help.github.com/articles/signing-commits-using-gpg/
The "input your password" dialog appears, and lazygit gets stuck, CTRL + C/Z doesn't solve that. (and you cant input your passphrase and sign)
There should be a way to write multi-line commit messages. For example, you could use Enter for newlines and Shift+Enter to commit.
Currently it's not really clear which tab is active just by looking at them (when there's not much information in them). The active tab is bolded, but the difference could be very subtle on some terminal setups (like mine). The active tab should be more distinguishable, maybe even use a different color for the outline.
Is there any chance lazygit
will be available via Homebrew?
I tried installing via go get
but I had to resolve some symlinks manually.
os: fedora28
$ go get github.com/jesseduffield/lazygit
$ lazygit
fish: lazygit: command not found...
The squash command fails in the UI because the HEAD reference is not upper case. Fails with git version 1.18.0
I pushed a commit to increase the contrast of the highlighted panel vs the other panels as a few people suggested, and although it's looking good on all my iterm themes, I don't have full visibility over what it looks like for everybody. So if your contrast is out of whack, please let me know here :)
I'm using the Solarized Light color scheme for my terminal - which unfortunately doesn't work well with the color map of lazygit in many sections of the GUI:
Please not the (at least for my eyes) unreadable blue status bar text, and very faint text in the Status/Branches/Commits sections.
It would be great if we could configure individual colors or select a color profile / palette!
It would be great if one could use the classic emacs/terminal shortcuts of C-n and C-p as substitutes for the up and down arrows. That way I could use lazygit without having to move my fingers too far from starting position. Another more general option would be either an interface or tutorial to allow users to change this to their desired keys.
Installed go for windows. Ran go get. Go bin is in path. Ran lazy git in git repo, command not found.
2018/08/07 10:15:06 invalid argument
panic: invalid argument
goroutine 1 [running]:
log.Panicln(0xc420065f00, 0x1, 0x1)
/usr/lib/go-1.10/src/log/log.go:340 +0xc0
main.run()
/build/lazygit-3g32Dt/lazygit-0.0git20180807.66.4d425de/obj-x86_64-linux-gnu/src/github.com/jesseduffield/lazygit/gui.go:267 +0x8agit20180807.66.4d425de/obj-x86_64-linux-gnu/src/github.com/jesseduffield/lazygit/main.go:68 +0xf2
main.main()
/build/lazygit-3g32Dt/lazygit-0.0
Hi, it would be great to have this available in homebrew main tree or as a tap.
That's it!
It would be nice to have git flow integration :
(will update with more information later)
Hi,
Trying to get this installed on macOS but still have nothing working. my go
environment works as expected but when running go get github.com/jesseduffield/lazygit
, the command runs and produces nothing in the terminal session. Any suggestions?
Thanks
I have been waiting for something like this for a long time, the only feature I'm missing is the ability to select lines and only stage them without staging the whole file.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.