loading...

๐Ÿ”ฅ In case of fire: GTFO

chiangs profile image Stephen E. Chiang Updated on ใƒป2 min read

Tips & Tricks (4 Part Series)

1) ๐Ÿ”ฅ In case of fire: GTFO 2) Quick VS Code refactor/productivity trick 3) ๐ŸŒ How I host my projects on subdomains 4) ๐ŸŒฎ Git 'r done when you're done.

Intro

Hopefully this will never happen to you, but even if it's not a fire or earthquake, an emergency may arise and you are pressed to get out of the office/building and you have uncommitted code.

What do you need to doโ“

GTFOโ— Urban Dictionary Definition

Typically something along the lines of:

> git checkout -b emergency-exit
> git add -A
> git commit -m "Emergency exit"
> git push origin head -u

That's a lot of commands to write with a lot of potential for misspellings and having to retype them. I wrote this for fun and thought I would share it. There's two ways I did this: a git alias, Powershell alias on top of the git alias.

Aliases

So I first create the git alias by editing the .gitconfig. I want to create an alias called tfo and create a function that calls all the git commands I listed above in succession.

So here's what that looks like (normally 1 line, but wrapped for formatting):

[alias]
    tfo = "!f() { git checkout -b emergency-exit && git add -A && git commit -m
       'Emergency exit'  && git push origin head -u; }; f"

To call this in the terminal command line I would just type:

> git tfo

โœจ That's it! My repo now has a branch called emergency-exit and I can merge or whatever I need to do later when it's safe.

If I don't want to write git: This step is written for Powershell

Edit the .profile to alias g as git.

> New-Item alias:g -value git

// or directly in the profile.ps1 file

New-Alias g git

To call the whole thing then, I would enter:

> g tfo

๐Ÿ’ฅ Now, I could write a global function called gtfo that does everything, or even a script, but this was fast and easy and a nice little 10 minute break.

**Important*": If you are unlucky to have to do this more than once or you did this to test it out, make sure you delete the new branch after you're done with it or you'll get an error because the branch already exists. You could probably get it to generate the branch with an incrementing number or the current date to differentiate as well.

Also if you have to do this often... Stay the F away from me...jk... But seriously... Don't come near me.

Update
Another way to make sure you don't run into a problem if the branch already exists locally is to use -B instead of -b. This creates the branch if doesn't exist and if it does, then resets it with the new changes.

If you find this valuable, please leave a comment and follow me on Dev.to @chiangs and Twitter @chiangse, ๐Ÿป cheers!

Tips & Tricks (4 Part Series)

1) ๐Ÿ”ฅ In case of fire: GTFO 2) Quick VS Code refactor/productivity trick 3) ๐ŸŒ How I host my projects on subdomains 4) ๐ŸŒฎ Git 'r done when you're done.

Posted on Oct 8 '19 by:

chiangs profile

Stephen E. Chiang

@chiangs

Pursuing a perpetual state of flow. Learn, Build, Eat, Sleep, Improve. Apply โ˜•๏ธ & ๐Ÿบ liberally. ๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿ‡ฉ๐Ÿ‡ฐ ๐Ÿ‡ธ๐Ÿ‡ฏ

Discussion

markdown guide
 

I love the idea and it is something you can easily remember since the command relates to what you actually have to do => GTFO.
Fortunately I have never had a scenario where I really lost my work, usually it has been small things or a fire drill.

 

This is definitely the funniest thing I've read today. ๐Ÿคฃ

 

Honestly if anyone finds themselves in a situation in which the branch already exists maybe they should consider switching companies instead of removing the existing branch! Great article, hope I never have to use it ๐Ÿ˜‚

 

Haha or maybe recommend the company to change buildings!

 

Why does the working command is

tfo = !git checkout -b emergency-exit && git add . && git commit -m 'Emergency exit' && git push origin head -u

and it renames my current branch? My notebook is mac.

 

Are you sure it renamed your branch or just switched you to the new branch? Check your list of branches.

No where in the function does it say:

> git branch -m emergency-exit

The above is what it would take to rename a branch locally.

 

Maybe

git add -A

should be more efficient than

git add .

. In case, you are not into the root of your git repo

 

Good idea, I'll update that, thanks!

 

I've got that t-shirt that says something like this. I pull it on for every fire drill in my office. Maybe I need to make my own with this command instead. LOL

 

I'd buy that shirt... Maybe @thepracticaldev would make one!

Oh oh here's an idea... Dev should make shirts from meme-able posts and have the post url on the shirt somewhere...

 

The shirt should have the QR code of the meme. That way instant gratification.

 

This truly is an excellent post! Although I'm constantly hoping that accidents don't happen, it does eventually. Thank you for sharing this! ๐ŸŽ‰