 Okay, so my name is Miguel. I'm a JavaScript Wrangler or engineer at automatic and I was co-erced into doing this lighting talk. So as a form of revenge, I'm doing Git and I guess small hacks, tips, shortcuts on just the way we work in our team. So most of what we do is centered around GitHub and based on pull requests. And there's lots of collaboration happening at once and there's lots of history rewrites because as a pull request grows we try and compact the history a bit around what makes sense and obviously we have to rebase things against our master branch so that things are current. So we have to pull changes very often and make sure we're not breaking things for ourselves and for other people. So I've had I have here my my Git config file and I have a ton of aliases and I'm gonna look at one which is up. And if you don't know about Git aliases they're just a way to either shorten commands or actually redefine things or invoke shell scripts and you can do a ton of things with them. So Git up is just the way I update my local repo. What it does is instead of doing so who here uses Git regularly? Okay. So you might be used to either fetching manually and maybe pulling or merging or just going nuts and doing Git pull and have the thing try and rebase blindly. So we're trying not to do that because we want to keep up with whatever other people are doing. And so what Git up does is it fetches all the remote references and then it tries to merge but the parameter here that says ff only means fast forward only. So it'll only merge that is update your local reference if whatever is changed on the server is just a linear expansion of your history. That is nothing as like the history hasn't diverged and it's just a continuation of the history you had locally. And so Git up will just merge if it can. It will just say okay I fast forwarded and if it doesn't it just says yeah I can't and what I do then and actually I have some examples I believe somewhere. Yeah okay so Git up here right and it pulls all the references from all the different branches which we have a lot and sometimes it will say let's see like fast forward here okay and then I'm good but if our history has diverged it will say not possible boarding. So what I usually do is I want to see how the history changed between my copy and the remote copy and so I wrote up this alias that I call div as in the divergence right and what it this does is just show me the last point in the history where my local copy and the remote copy diverged and then the tips of both histories and what this looks like is something like this so Git div here right and the last line here is the last commit that is common to both branches and then this one is one that came from the server and this is one that I just made up locally and so this is a really quick way by looking at the summaries to know okay so all the people on my team worked on say change push to an assignment and meanwhile I was just working on bogus commits and then that's when I can either decide to just rebase locally as I would or maybe yeah maybe my local commit doesn't apply or I should change it and then I could decide and how much time do I have 30 seconds so yeah and then what can I talk about okay I just really simple one just commit so I some of my alias as there is just you know shortening things instead of typing check out just type co but commit I add a parameter which is minus V and just that just make it makes it so that when I do get CI instead of just having the the editor with the where I type in the summary of my changes I see the the whole diff of what I am committing so it's a really quick way to make sure that you're not doing something really stupid by accident and yeah just have fun with aliases there's a ton of things you can optimize and if you work a lot with Git thank you very much thanks