Agreed, switching/merging/creating/deleting branches is so seamless in Lazygit with plugin. That feature alone is worth the price of admission. Also viewing merging/squashing/amending commits so easy with lazygit.
Yes. 100%. And I might be odd but actually find/want a bit of context change. I find it helpful. I am context switching when I am dealing with VC and the float window gives me just enough separation.
I heavily use lazygit in my Neovim set-up, especially since in my team we use conventional commits and use a tool called czg that helps with writing the conventional commit messages. So in lazygit I added a key binding for capital Z to launch the czg for the commit message and it is super fast and really helpful.
I absolutely love neogit. Used magit for years. But i still use lazygit about 50/50. Partly because it is editor independent and partly because its commit copy paste, rebasing, and moving are super slick. But in general I like neogit the most.
You missed an important feature of neogit: the commit-ish item under the cursor will get passed to the popup! So, `ll` to open the log, then `bb` will let you check out the selected commit. This pattern works all over :)
@@adinsdvoin 1. Nice! I didn’t know about it 2. How often do you find yourself checking out a specific commit in the history? I think for me this is quite rare
Thanks for the video! I try neogit every once in a while but always miss git blame and general interactiveness. You see the list of stashes but you can't actually see what in there. Or in git logs: I can't do anything meaningful, for example I'd like to press on the diff and jump to a full version of file. Or if you choose to filter log by a directory you, then you can't even see the diffs. Something you can easily do with vim-flog which integrates beautifully with fugitive and you're getting the full IDE experience.
Hey, nice video! really inspired me to stop using cli for every git command and it's been amazing :) At first I couldn't make 'neogit commit' work out-of-the-box. I thought that since I'm using Nvchad, somehow that configuration was messing up with neogit. After spending a lot of time (maybe there are better/simplier solutions) I change the following: 1. Add an autocmd that start a nvim server in my init.lua with 'vim.api.startserver('path')'. 2. Edit the client.lua file from the neogit config directory in the line 53. I manually added a path to 'fn.startserver('path)'. In both cases I had to specify the server path (in my case /tmp/nvim.socket and /tmp/neogit.socket). Again, idk why the default parameters of vim.api.startserver() didn't work.
I love NeoGit, however the last time I used it, there were a few optios that weren't implimented in the plugin still. That ultimately pushed me back to lazygit in a tmux pop-up to handle my git workflow. It might be time to give neogit another run through.
Perfect timing of the video, just went through a small git merge managed to successfully break the code with git and had to revert reset hard. Vim fusitive is hard at least for me for merging.
I'm using Obsidian for notes and it's nvim plugin is configured to load on all markdown files. It has a nice concealer taking care of links, lists, etc. I made a video about it - th-cam.com/video/5ht8NYkU9wQ/w-d-xo.htmlsi=L6iBbzyNJ_u0Vt7L This is the plugin: github.com/epwalsh/obsidian.nvim
You mean the PR link? When pushing with fugitive it shows the response from the platform , so when GitHub sends back a url with a PR I use Tmux URL plugin to fetch whatever it finds on screen and then hit it to pop the PR page
Focus switch is also the main reason one should never include a video in a presentation. Notice in a class of a seminar, the moment the presenter says "now let's watch this video" everyone suddenly sit back, drink water, or simply start chatting with each other
I prefer using plain git commands for most tasks, except for browsing history and maybe blame. All those tools just seem counter productive when I use them
@@devopstoolbox thank you! I was going similar using fugitive just wondering if anyone else had found a way to swap it out entirely. Thanks for the reply!
Maybe a little off topic but I often find very difficult to beat gitk for branch integrations. As a sort of team leader I often need to validate before integrating many branches into master by performing code reviews, view diffs, etc. I wonder which tools big code integrators like Linus use to perform these tasks. I'll give lazygit a try because it has the 'a' flag which is equivalent to "gitk --all" that is probably the command I use the most
@@frankslsh I see. My favorite way is actually running a worktree structure and then opening multiple buffers / splits with different trees for comparison. Diffview serves as the actual diff visualizer
Thank you for the video. A newbie question who is trying to set up neovim from scratch onmy first mac - would you mind sharing the config files for your setup neovim and tmux - would like to refer to it and take inspiration. BTW would also like to know how to get the fancy icons on your tmux , color scheme and fonts
Sorry, not sure which part but, leader+gs starts Neogit with the status panel while leader leader+gc pops the commit menu. Everything is on my dotfiles if you want it: dotfiles.omerxx.com
I am working with large repos (Kubernetes) but not actually making commits, I did use it for branches and other local use and didn't see anything out of the order
@@devopstoolbox Thanks! I've tried neogit in the past but eventually switched to lazygit (which is really good too) but I might give neogit a another chance to see how it feels.
Can you make a tutorial on how to use dandavison/delta for nicer view of diffs in lazyGit? I think that is a good thing people from VS Code (like myself) would are used to and would really like in lazyGit.
Removing distractions and keep focus is why Emacs users do everything in Emacs. For git we use Magit (pronounce like Magic) and you stay in emacs, full control of everything.
I have a dream of a diffview for PRs that would also allow me to write comments and send them straight to GitHub / GitLab - this is the final missing link for my Neovim / Git integration.
I also recently came across danobi/prr on GitHub which is a different take on the problem: it's based around writing comments into a diff file and then running a CLI to submit them as a PR review - so it's editor-agnostic
Silly canonical question: Does TUI refer to "Text User Interface" or "Terminal User Interface"? Taking notes here and...it's a reasonable doubt, okay? Great content. Bye bye!
With the Lazygit neovim plugin there is no context switch and you can do all the things mentioned.
I should have included it here but while it is great(!) I still feel it’s a bit of a context switch and not as smooth
Agreed, switching/merging/creating/deleting branches is so seamless in Lazygit with plugin. That feature alone is worth the price of admission. Also viewing merging/squashing/amending commits so easy with lazygit.
Yes. 100%. And I might be odd but actually find/want a bit of context change. I find it helpful. I am context switching when I am dealing with VC and the float window gives me just enough separation.
I do agree as well
Lazygit are truly the best without much or not even a learning curve
I heavily use lazygit in my Neovim set-up, especially since in my team we use conventional commits and use a tool called czg that helps with writing the conventional commit messages. So in lazygit I added a key binding for capital Z to launch the czg for the commit message and it is super fast and really helpful.
That’s super cool! I love it that you can customize it like that
I had no idea about czg, thanks for the tip!
Ok I'm installing Neogit today. Thanks for the video Omer!
big fugitive fan, but neogit is beckoning
Thank you for compiling lots of up to date options. Very interesting
I find I'm getting by with gitsigns, for now, but its nice to see alternatives! Thanks!
Been using lazygit for a couple of years now, but ngl neogit looks so good. Reminds me a bit of magit
It was inspired by Magit :)
@@devopstoolboxThanks for sharing these plugins!!
I absolutely love neogit. Used magit for years. But i still use lazygit about 50/50. Partly because it is editor independent and partly because its commit copy paste, rebasing, and moving are super slick. But in general I like neogit the most.
Cool! I'll give NeoGit a try! Thanks!
You missed an important feature of neogit: the commit-ish item under the cursor will get passed to the popup! So, `ll` to open the log, then `bb` will let you check out the selected commit. This pattern works all over :)
@@adinsdvoin 1. Nice! I didn’t know about it
2. How often do you find yourself checking out a specific commit in the history? I think for me this is quite rare
I have been using neogit for years and just learned you could use bb tysm for your comment
Neogit may provide magit like functionality in vim, definitely checking that out. Thanks for the video!
Thanks for the video! I try neogit every once in a while but always miss git blame and general interactiveness. You see the list of stashes but you can't actually see what in there. Or in git logs: I can't do anything meaningful, for example I'd like to press on the diff and jump to a full version of file. Or if you choose to filter log by a directory you, then you can't even see the diffs. Something you can easily do with vim-flog which integrates beautifully with fugitive and you're getting the full IDE experience.
Sure you can - every popup uses whatever is under the cursor in the log as input for each action. And on a stash shows what it is 😅
Hey, nice video! really inspired me to stop using cli for every git command and it's been amazing :)
At first I couldn't make 'neogit commit' work out-of-the-box. I thought that since I'm using Nvchad, somehow that configuration was messing up with neogit.
After spending a lot of time (maybe there are better/simplier solutions) I change the following:
1. Add an autocmd that start a nvim server in my init.lua with 'vim.api.startserver('path')'.
2. Edit the client.lua file from the neogit config directory in the line 53. I manually added a path to 'fn.startserver('path)'.
In both cases I had to specify the server path (in my case /tmp/nvim.socket and /tmp/neogit.socket). Again, idk why the default parameters of vim.api.startserver() didn't work.
can you teach me how you opened that url picker at 4:43? is that a telescope extension?
Of course: github.com/wfxr/tmux-fzf-url
All in my config: github.com/omerxx/dotfiles/blob/master/tmux/tmux.conf
I love NeoGit, however the last time I used it, there were a few optios that weren't implimented in the plugin still. That ultimately pushed me back to lazygit in a tmux pop-up to handle my git workflow. It might be time to give neogit another run through.
Yep! And apparently there’s now a lazygit nvim plugin with seamless integration
Perfect timing of the video, just went through a small git merge managed to successfully break the code with git and had to revert reset hard. Vim fusitive is hard at least for me for merging.
What plug-in or config is he using to open that floating "Cmdline" input where he types "DiffViewOpen" at 8:56?
Oh looks like that's noice? Noiceeee
3:58 (off topic - maybe for a next video) - Which nvim plugin do you use to show links in markdown without [name](url) and the icon on the right?
I'm using Obsidian for notes and it's nvim plugin is configured to load on all markdown files. It has a nice concealer taking care of links, lists, etc.
I made a video about it - th-cam.com/video/5ht8NYkU9wQ/w-d-xo.htmlsi=L6iBbzyNJ_u0Vt7L
This is the plugin: github.com/epwalsh/obsidian.nvim
Thanks! Great videos!
Awesome video, thank you for this
Awesome. I'm curious how you did the pull-request flow on push. Can you elaborate more on that process?
You mean the PR link? When pushing with fugitive it shows the response from the platform , so when GitHub sends back a url with a PR I use Tmux URL plugin to fetch whatever it finds on screen and then hit it to pop the PR page
Focus switch is also the main reason one should never include a video in a presentation. Notice in a class of a seminar, the moment the presenter says "now let's watch this video" everyone suddenly sit back, drink water, or simply start chatting with each other
100%! thanks!
So nvim finally has magit
Totally
What is that cmdline pop up thing ?
I'm assuming you're referring to Noice.nvim
@@devopstoolbox, yeah thanks.
I prefer using plain git commands for most tasks, except for browsing history and maybe blame. All those tools just seem counter productive when I use them
Yep, we’re not all the same! I figured most of my git ops are the quickest when using something lean from within Neovim
I love Magit in Emacs and had been hoping someone would create a decent alternative for Neovim. I think Neogit offers a great alternative!
How do you solve conflicts in neogit
I think it's mentioned in the video, I use something outside neogit - vdiffsplit and a bunch of bindings to help me pick through a 3 way split
@@devopstoolbox thank you! I was going similar using fugitive just wondering if anyone else had found a way to swap it out entirely. Thanks for the reply!
Switched to neogit, thanks it's awesome. but can anyone have an idea (plugin) to create a branch without typing in `git checkout -b branchname`?
On most of my projects I use git trees on a bare repo, and then use the primeagens plugin to create and manage them, I’ve got a video about it too
Use the branch popup, `b` to create branches :)
Maybe a little off topic but I often find very difficult to beat gitk for branch integrations. As a sort of team leader I often need to validate before integrating many branches into master by performing code reviews, view diffs, etc. I wonder which tools big code integrators like Linus use to perform these tasks. I'll give lazygit a try because it has the 'a' flag which is equivalent to "gitk --all" that is probably the command I use the most
Maybe gh dash can help with lots of branches diffs and PR management -
gh-dash on GitHub
@@devopstoolbox Thanks for the tip, unfortunately we do not use github for repo storage, I generally do this integrations locally on my pc
@@frankslsh I see. My favorite way is actually running a worktree structure and then opening multiple buffers / splits with different trees for comparison. Diffview serves as the actual diff visualizer
how do you merge conflicts with neogit now that you removed fugitive ?
When it’s bad enough I still use vdiffsplit I think I mentioned it in the last part
I use fugitive instead of lazygit because of less visuals, it's a really really good plugin!
Couldn’t agree more
100% but neogit might take the crown
In terms of usage? @@nickmills8476
where did that Open URL pop up came from?😳
Haha that's Tmux URLs plugin!
Thank you for the video. A newbie question who is trying to set up neovim from scratch onmy first mac - would you mind sharing the config files for your setup neovim and tmux - would like to refer to it and take inspiration. BTW would also like to know how to get the fancy icons on your tmux , color scheme and fonts
Of course!
dotfiles.omerxx.com
It’s all there
neogit is magit for nvim
@@zherka_pill absolutely. It even says so in the README :)
Sorry, could you share your neovim config, would be nice to review it and see how to configure things better. thanks
Of course!
dotfiles.omerxx.com
It’s all there
thanks!! was able to take a few things from it. Keep it up!@@devopstoolbox
That status bar looks amazing. Can you share your config for that status bar?
Everything is in my dotfiles! dotfiles.omerxx.com
You’ll find both the lua line config and Tmux!
How do you get the popup to enter the neogit command? You went too quickly in the video and didn't explain how that worked?
Sorry, not sure which part but, leader+gs starts Neogit with the status panel while leader leader+gc pops the commit menu. Everything is on my dotfiles if you want it: dotfiles.omerxx.com
Does neogit feels laggy on large repos?
I am working with large repos (Kubernetes) but not actually making commits, I did use it for branches and other local use and didn't see anything out of the order
@@devopstoolbox Thanks! I've tried neogit in the past but eventually switched to lazygit (which is really good too) but I might give neogit a another chance to see how it feels.
Can you make a tutorial on how to use dandavison/delta for nicer view of diffs in lazyGit?
I think that is a good thing people from VS Code (like myself) would are used to and would really like in lazyGit.
Diff view should take care of that for you! Super easy to use!
Removing distractions and keep focus is why Emacs users do everything in Emacs. For git we use Magit (pronounce like Magic) and you stay in emacs, full control of everything.
great video as usual!
Title has a typo on integrations 👀
Thank you!! It never ceases to amaze me how many thousands can watch it without noticing (or bothering to comment 😂)
🙏🏽
In my opinion lazyGit is not any more context switching that any of the options showcased in the video.
We’re not all wired the same 😎
I have a dream of a diffview for PRs that would also allow me to write comments and send them straight to GitHub / GitLab - this is the final missing link for my Neovim / Git integration.
Maybe this is what you're looking for?
github.com/dlvhdr/gh-dash
For GitHub you can do this with gh.nvim or octo.nvim
I also recently came across danobi/prr on GitHub which is a different take on the problem: it's based around writing comments into a diff file and then running a CLI to submit them as a PR review - so it's editor-agnostic
Yo are you omer creator of sessionx?
@@alihammadshah yup :)
@@devopstoolbox Great software, i use it everyday.
All of them included in NormalNvim!
Silly canonical question: Does TUI refer to "Text User Interface" or "Terminal User Interface"? Taking notes here and...it's a reasonable doubt, okay? Great content. Bye bye!
Onye neogit fixes those show stopping bugs it might be something but for now, each time a conflict appears, the status view is broken. Wtf
Interesting I didn’t see that, will try lay with conflicts again
I prefer fork (not vim) any day especially since i have 50+ projects
So only the shiny button breaks your focus. Remembering strange abbreviations not. I see!
Maybe with git blame i could move to neogit. For now fugitive is ok.
neogit is very similar to magit
Indeed! It's inspired by magit!
Maybe its just me but anything else other than Lazygit is friction 😅b
As the saying goes: YMMV 😉
Neogit is buggy and freezes often for no reason
Hmmm.. I've been using it fulltime for a good few months and never had it freezing up on me. Maybe a buggy version?
This video feels like it was written by ChatGPT given how long-winded it is.
hi