The Git client you didn't know you needed

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
if you're like me you know maybe seven to eight git CLI commands that you use frequently things like checking out branches creating branches Push Pull U maybe if you're feeling frisky a merge or a rebase or stash or something like that but I've always been of the opinion that get guis don't really do much for me as a solo developer if I'm doing something with a team they're perfect because then I exactly how to which specific files that I'm pulling in from I know which files I'm creating in a new Branch I know which ones I'm how I'm working within a particular product but this week I found a new visual interface for using git and it fits extremely well with my workflow so I guess new git workflow is [Music] served so G Butler was created by Scott shakon who is actually one of the co-founders and creators of GitHub and then also the author of the pro get book and G buler puts a new spin on git GUI instead of focusing on exactly kind of obscuring away git CLI commands G Butler thinks to reinvent them at least reinvent what you're seeing on the front end so G Butler's whole thing is redefining what branching actually looks like but git Butler allows you to have particular changes within a repo and instead of having to check out different branches and having your changes be confined to that particular Branch the gist of is you can move changes around to different virtual branches and only commit that when you need it so instead of having uh instead of having different features in one branch and sometime you think oh I need to add this style change well instead of pushing that all in one branch or creating a separate branch and doing the change there you can just move it to a new virtual Branch so let's take a look at the demo hi everybody my name is Scott jaone I'm the CEO and co-founder of git Butler and I'm here to give you a quick overview of this new Branch management tool forg and interestingly we're uh opening up the source code for everybody to to help us out or to look at it or to try it or to use it for whatever that's one of the things that I think is actually super incredible and we'll take a look at it in a bit but it is built on top of spelt using Tor which is built in Rust so if you are trying to learn or just get better at using those languages this is a perfect open source package open source repo to learn from and we're opening up from alpha into beta so this is what G Butler looks like right now I'm completely up to date with my Upstream Branch so if I have like origin master or origin main or something and my working directory looks exactly like that it's going to say hey you're up to date one of the cool things about GB is you don't need to sort of you know create branches and delete branches and switch branches we try to handle all of that for you um so I'm going to show you a really quick example of kind of what that looks like so let's say that I'm working on this website uh this is a website of upcoming conference that we have and I have a feature that I'm trying to work on which is to make the background color totally perfect so I'm going to go in here and I'm going to go into my Styles and I'm going to turn it to this lovely uh mauve color I actually don't know what color this is but let's say that so that's that's great that's my feature if I go back to get ber you can see that it created a branch for me automatically it saw that there was some changes it saw that there was something different and now one of the things I don't know if it's happening behind the scenes I haven't actually checked it out just yet is it'd be curious to know if it actually is automatically creating that Branch but I don't think it is because I'll show you in a little bit when you commit those changes then that's when it's it's actually committing and creating a branch for you with the branch name that you want so when he says Crea a branch for me it's a it's a virtual Branch it created a branch for me so I don't have to remember hey I'm accidentally committing on master or or something like that it sees there's some work that diverges you're on a branch really technically so here's a branch for you um and just names it virtual Branch uh at first and let's say as I'm working on I you know my feature I can you know let's say that I want to commit this I can go in I can generate a message with AI if I want to you know just if I don't care too much about kind of what the the message is I can commit that and I can keep working on this so let's say I want to make it even even more beautiful and so I have this beautiful green color um that now I can go in to getb and I can see this change right so okay I change this again I already have uh uh one commit here but I want to create another commit um now there's a couple different things that I can do here um I can say you know generate a new message and commit this um I can also undo this if I want to um so it's relatively easy to do sort of normal Branch management stuff I can generate a new message change it again commit it again I can also drag this and sort of squash it by dropping it onto the previous one that I have I can push it up the drag and squashing is a really unique feature I think in the sense that it it it does exactly what squash does and of course Scot shot knows this because he is an incredible I get but that's the visual representation of what squash does at least in my head and having that UI representation to be able to do that it just it just makes sense if I can create a poll request but let's undo all of that real quickly and I want to show you what happens when you find a bug so let's say this is a very common thing I'm working on a feature I have a bug that I have um and I go in and I want to somebody told me that the dates are not June 13th and 14th they're the 14th and the 15th right so now if I go to my website I can see that you know the data's changed the background's still there so I have a bug fix and I have a feature that I'm working on now the nice thing about g b is that it shows you it comes up in the same thing but what I can do is I can actually sort of separate this work into into a new Branch right so I can say I want to take this June 13th and 14th change that I have here um and I can drag it into a new column and it creates a new branch and you can see on the website it hasn't actually both of these are here it's 13th and 14th and it's this beautiful background color um but when I go in here I can you know I can generate a branch name that says fix the conference date it figures that out kind of for me I can also set this as the default and when I keep working changes that I'm working on going to this Branch rather than the other Branch but I'm going to stay in my feature Branch right now um and I can commit this separately so I'm fixing the date I commit it and not only can I push to the remote but I can also automatically create a pull request um if you've authenticated with GitHub so I'm going to hit one button um and it's going to push up to GitHub and I'll have a poll request opened and I can view that immediately we can see that it pushed this Branch to GitHub it opened a poll request and if I look at the files changed it's only the state change even though in my working directory I actually have both I have the ugly background which is my feature and I have the bug fix which is the date change now the other cool thing you can do is you can sort of stash these branches and apply them independently for example you can see the the website in the background here if I unapply this background color change the background color disappears but the date change stays there and then I can also come back in here and reapply this and the background color comes back in without actually changing this this bug fix that I have now when this bug fix Branch actually gets merged in Upstream we'll automatically notice it and we'll mark it as integrated you'll see it as integrated and when you update it will remove that Branch from your working directory so you're not creating branch branches switching branches deleting branches doing Branch management you know squashing merging all of that we're handling most of that for you as much as we can there's a ton of other things that g Butler can do this is a really quick preview of how much easier it is to manage your branches to do your normal workflow um I hope that you'll try out our beta um I hope that you'll join us in Discord and tell us what would you love a next generation of get client to be like um because at the end of the day get col is here to serve you I hope to see you in Discord thank you very much I immediately loved what I was seeing because I've never found get GUI to work great for me because I'm never working with a team for my the products that I work on I'm usually working by myself and most of the time I don't really need to create poll requests I still do commits I still try to keep everything as clean as possible but most of the time I'm just hey here's you know one one section of work that I've done and I'm just going to commit that and if I need to do any kind of like reverts or squashes or anything like that I just do that in GitHub for example but what I love about this is being able to kind of take what works in my mind of saying hey I'm working on a whole bunch of different things at once but I want to clean it up to separate branches and to and to separate commits and everything like that instead of having all of these changes that I'm creating be confined to the one branch that I happened to check out an hour ago as a side note Scott shakon actually just did a talk at the fdam fosdem 2024 on So You Think You Know get it's about 46 minutes long it's an incredible talk it doesn't even talk about too much about get Butler but incredible tips on things that you probably didn't know where in get things that you didn't know where in get but didn't necessarily know exactly how they worked but overall a good primer for what exact actly G Butler does what kind of magic does it obscure way and where can it help you in your particular workflow okay so I did mess around with this a little bit of the past couple of days since I heard of the announcement and one of the things that um I immediately comes to mind is that Gib Butler is incredibly designed well like it has incredible UI it just looks visually appealing and it's built on T rust and spelt so like I said before if that's something that you're looking to learn more about this a perfect example right here one of the things that I think um I want to show in this kind of personal demo is what are the things that you can do and what are the kind of like commits and branches and stuff that you can actually work with in a in a personal or small team workflow and one of the things I think about is like okay if we add anything here like because you're probably just like me you jump into your code you know exactly what you need to fix or what feature you need to add then all of a sudden you find like a particular file and you're like oh actually that doesn't work quite the way I wanted to let me fix that oh I like I jump into you know this file right here and actually I forgot I wanted to add it to like a limit of 40 and so we jump back to get Butler and we already have that change ready for us to go in a virtual Branch we can change this Branch name but when we commit it it's going to create its own name anyways we can see that change but then make any other change as well so let's say I I completely forget about pushing my code and then my personal workflow this is what I would do I would start writing code and in 30 minutes or an hour or two hours whenever I need that next break let's say um in the actual dashboard you know file maybe I want to um have like a little little fire uh Emoji right there and I save that and then I jump back into my git Butler and I'm now I have multiple different files but one is a fix because I needed to add this change and then one's just like a little addition well of course you probably have 20 30 different files in this you know and this changes view right now all in one virtual Branch then this is where you can just automatically just say okay hey actually we're we're adding this to you know a new Branch over here and now I've got two virtual branches I can change change the names of course I can set this is defaults or any new saves or it's going to be particularly on this virtual Branch I love it it's it's one of those things that it works well in my mind it works well for the things I need and I probably have not discovered all the features that I that I you can discover what does this even do okay that's just debugged it but it's one of those things where it just makes sense not only visually but how I work personally and if you're anything like me this is going to make a complete make complete sense for you because you have all these changes that you can naturally start to say hey I'm breaking this up without having to stash different changes without having to create a branch and save it somewhere else and stash it and and do all of this mumbo jumbo within Git You can just work work like you want to work it's that's great the only thing I can think of for a potential downside is when you're creating new virtual branches it might be difficult to know okay what virtual Branch am I using but I almost think of that in terms of commit if you're going to commit often set up a virtual Branch for that so now okay I did all of these changes okay I did this section of a feature now I'm just pushing for that and creating a virtual Ranch using G Butler to do it I think git Butler is a fresh and brand new addition to the git GUI world and something that is needed in the world as well especially within small teams especially within solo developers and I could be wrong on that maybe big teams can use it incredibly well as well I don't have that experience so I can't necessarily speak to that but one of the things that I think G Butler does incredibly well is it it adds that magic that you want as a developer while not taking away the power of what git is and what git does being able to do all of that in a beautiful visual interface is absolutely incredible to me so it might be time to serve up a new way of doing things when you're working with get see
Info
Channel: Josh Cirre
Views: 5,620
Rating: undefined out of 5
Keywords: git, github, git branching, git gui, gitbutler, git cli, git workflows, github clients, git client, github integration
Id: oD8H3jh5xfQ
Channel Id: undefined
Length: 15min 7sec (907 seconds)
Published: Wed Feb 14 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.