 One of the questions that is often asked is what is that one feature in Emacs that will sway somebody over to using Emacs? Say that person is a Vim user or VS code user or a sublime text user. What is the killer feature in Emacs? What is that one thing that will make somebody switch from those other editors, which I'm sure are fantastic, and over to something like Emacs? Well, the killer feature for Emacs is going to be different depending on your workflow. Everybody's got a different workflow. For example, if you're big time into outlining and note-taking, org mode really is the killer feature in Emacs. But I think if you are a developer, a professional developer, and you use Git all the time, then really the killer feature in Emacs is the Maggot Git Client. I'm going to give you a brief overview of the Maggot Git Client. So let me pull up my desktop and let me go ahead and launch Emacs. And of course, I use Doom Emacs. And what I want to do is really to launch Maggot, what you want to do is you want to navigate to some directory on your system that is a Git repository. So really the first thing we want to do is probably pull up DeerEd, which is the file manager inside Emacs, and navigate to some directory on the system that happens to be a Git repository. So I know I've got my DWM-distro-tube directory here, which contains my build of DWM, and this is a Git repository. So if in Doom Emacs, if I do space gg, this launches Maggot. Specifically, what this launches is Maggot-status. So if I do meta x on the keyboard, which brings up a command prompt here in Emacs, and I did a Maggot-status, you can see the key binding for it was what we entered space gg. Here in Doom Emacs. Now, if you happen to use vanilla Emacs, you may not have a key binding to launch Maggot-status. So you may actually have to do meta x and then type the command Maggot-status to get this page. So when you first launch Maggot, at least the status page for Maggot, you see exactly what you get here. You get some information at the top. You get the head, the merge, the push. You have some unstaged changes. And if we had staged changes, they would also be listed here. And then you have some recent commits as well. So if I navigate in Doom Emacs, which J and K, because it uses the evil key bindings, you know, I can move the cursor around. And if I go to unstage changes and I highlight over this particular change and I did a tab, you know, I could actually see the diff. And if I did a tab again, I can make that diff go away. And then I could check out the next one by hitting J on the keyboard to go down. And then tab, I could check out the diff for that tab to make that go away. Same thing for that one. That way I could read the diffs. And if I wanted to go down here to recent commits, I could highlight that I could hit tab. I could see the recent commits. And if I wanted to read that first commit, I could highlight that and I could hit enter. And I could read that particular commit. You can see the author was me just earlier today. And you can see the changes that were made. You can get the diffs in that commit as well. And in this commit, if I go over here and I just hit Q, it will close that diff that opened in that split. And I think for purposes of this video, what I should do is pull up a terminal and show you what some of the standard command line get commands look like versus what they look like here inside maggot inside Emax. So let me pull up a terminal and I'll pull up a V term inside Emax here. So this is a terminal actually running inside Emax. Let me CD into that DWM dash distro to directory and going to run a get checkout. You get the same information here as far as what's been modified, some of the changes that have been made. If I wanted to run a get status in the get status, you can see actually looks very similar to what's going on. I get a little more information, of course, in maggot. That's one of the nice things about maggot. You get a little more information if I wanted to do a get diff. I could do a get diff and read the diff similar to what I did, you know, up here where if I, you know, tabbed over this particular file, I could read the diff of it and read the diff of that one. And if I wanted to, I could run something like get log and we could check out the log. Of course, you can do that as well over here in maggot. You if you just type L on the keyboard, you can get some log information. So just typing L, I get this menu of other key bindings that I could hit to get whatever it is I'm looking for. If I want the current log, I just hit L again and I get the current log. And if I want to read some of this, you know, I could just hit enter on the keyboard and, you know, read whatever I want to read. And of course, back up here, I can move with J and K to get whatever it is I want to check out and check out something else here. And if I wanted to, I could just go back to the get status page by typing space gg again to get to the main page. Of course, it opened it in a split. So let me close this split up here by getting my cursor into it and then hitting Q on the keyboard. I should be able to quit out of the log. Now, one thing to know about me is I am not a professional developer, so I don't have serious needs as far as get. I'm not going to be spending all day long pushing and pulling to different get branches and things like that. My needs are very simple. I have my own personal get repositories, mainly for my dot files. That's mainly what I do with get. So my needs are very basic, but even with my basic needs, I really like this maggot client. Let me actually zoom in a little bit so you guys can see the get status page. And one of the things you want to know is other than get status, that's nice that we can read the divs and the logs and things like that. But of course, how do you stage something? How do you commit something? And how do you push something? That's what you want to know. So I've got these modified changes here in this DWM directory of mine. Now, if I wanted to stage these, I could just type J on the keyboard to go down to these. And if I hit S on the keyboard on this particular modified read me dot mark down file, you see it moves it to staged and moves it from unstage to stage. Now, if I wanted to unstage it, I could go back down here and type you on the keyboard. It will unstage that if you wanted to stage everything, you could just do capital S on the keyboard. And you see all three items here have moved now from unstage to staged. If I did capital U on the keyboard, they have all changed back to unstage. Now, let me actually stage these and we'll push them. So I'm going to S to stage that one, S to stage that one, S to stage that one. To do a commit, what you need to do is type C on the keyboard. You get a menu down here. If you type C one more time, it actually opens up the commit page here where you actually type a commit message. And I'm going to go ahead and type a commit message. And I'm going to say edited my DWM key bindings because that's mostly what I did in this particular commit. And I could escape to get back into normal mode. Now, this commit is not saved until you do the following control C followed by control C. So control C, control C. And now that commit is actually saved. And now we're ready to push. You need to type P on the keyboard or force for push. Now you get a push menu and it's asking you where do you want to push P for origin master, U for origin master, E for elsewhere. For me, I'm just going to push to the master branch because it's just my dot files for you guys doing serious development. You're probably going to be pushing to other branches other than master on the projects you work for. You know, you're going to be pushing to development branches and things like that. If you typed B on the keyboard, you get a branch menu where you can create new branches or whatever it is you need to do for me. I just need to push to origin master. So I'm going to hit P one more time and it automatically pushes it because I have some keys set up some SSH keys set up for my get. So I didn't have to type username and password or anything. So as soon as I hit P and then P again, it pushes that commit and that is it. If I pulled up a web browser right now, you would see that this was successfully pushed to my get lab. That's where this particular build of DWM is hosted. If you need help figuring out what's going on in Maggot, you could always hit the question mark on the keyboard. And you will get a help menu and you get all the key bindings that you could hit. And there's a ton of things. There are a million get commands. There's a million get commands in the command line version of get. It's just most people don't even use 5% of the commands that are available for them. It's the same thing here in the Maggot client. Everything you can do at the command line is also available here. It's just most people never dive that deeply into get. But if you want to or if you need to because of your work, Maggot really is the killer feature for Emacs. I'm not even joking. This would be the reason why you would use something like Emacs rather than Milm. Now before I go, I need to thank a few people. I need to thank Michael, Gabe, Heplo, Nate, Corbinian, Mitchell, Entropy UK, Arch 5530, Chris, Chuck, DJ Donnie, Dylan, George, Lewis, Omri, Paul, Sean, Tobias, and Willie, the producers of the show. They're my highest tier patrons over on Patreon. I also want to thank each and every one of these ladies and gentlemen that help support my work because this channel is supported by you guys, the community. You want to support my work, you'll find DT over on Patreon. All right, guys. Peace.