14-day Cloud trial
Start today. For free.

One editor. 50+ features. Zero constraints. After your trial, retain the advanced features.

Try Professional Plan for FREE
PricingContact Us
Log InGet Started Free

The essential git stash and git reset guide

June 9th, 2021

3 min read

 An octocat figurine stands in front of a computer screen

Written by

Team Tiny


Developer Insights

Every developer needs an understanding of version control, and Git has become the de-facto version control standard. However, there's more to Git than a few simple commands. Our developers compiled their knowledge into a beginner’s Git class to help teach more about useful git commands.

There are two essential git commands to learn and apply:

  • git stash, which makes a temporary, local save of your code
  • git reset, which lets you tidy up your code before doing a commit

Git Stash

Git stash enables you to save your code without making a commitment. How is this useful?

How to use Git Stash

Stashing is like saving a temporary local commit to your branch. It’s not possible to push a stash to a remote repository, so a stash is just for your own personal use.

After running git stash, your branch appears as it was when you made your last commit. Now, you can safely change branches without losing your code or having a messy commit.

You can reapply the stashed content by running git stash apply. You can also apply a specific stash (if you have stashed more than once) by running git stash apply stash@{1} (the ‘1’ denotes the second before the last stash).

If you decide not to commit your work once you have restored the stash, you can run git checkout, which resets all uncommitted code.

Git Stash example

Picture the following scenario: You’ve already made three neat and tidy commits, but you also have some uncommitted code that’s quite messy; you won’t want to commit it without removing your debugging code first. 

Then, for some reason, you suddenly need to attend to another task and have to switch branches. This can often happen if you are on your master branch, and you have forgotten to create a new branch for your feature. Run git stash, the uncommitted code disappears without being committed.

Here’s another example of how to use Git stash: say you have some new files, one of which has a bug. Leave all but the suspected bug file unstaged (code must be staged to be stashed), then you can stash that file and troubleshoot the issue. If the stashed file wasn’t the problem, you can restore the stash.

You can also carry over your stashed commits to a new feature branch or debugging branch by using git stash branch.

Note that when you have applied a stash, the stash isn’t deleted. You can remove stashes individually by using git drop{stash number}, or remove all stashes by using git stash clear.

Git Reset 

Git reset is a bit more confusing, especially when teaching new Git users. A soft reset should be reserved for a genuine mistake whereas a stash can be used to swap code in and out.

How to use Git Reset

To do this you can run git reset --soft HEAD~1. This will reset the most recent commit, and you can reset back more than one commit by changing the number after ~ e.g. git reset --soft HEAD~2.

How to undo a Git Reset

If you do find yourself in a situation where you’ve accidentally committed some messy code, you can do a “soft” reset. This means that the code appears as if it has not been committed yet. Then you can tidy up your code in your IDE before making a cleaner commit. 

You can also perform a hard reset — git reset --hard HEAD~1. This type of reset essentially erases your last commit. However, you should be very careful about performing hard resets, especially if you push your branch, as there is no way to restore your commit.

What’s next?

You can visit our Tiny GitHub repositories, and see how we use git commands in practice. The Github quickstart guide has even more information on setting up and using git commands if you need support starting out using git commands.

byTeam Tiny

Powering more than 40% of the world’s websites. Here to educate and empower the world through all things TinyMCE and more.

Related Articles

  • Developer InsightsMar 7th, 2024

    Understanding Uncaught TypeErrors in JavaScript

Join 100,000+ developers who get regular tips & updates from the Tiny team.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Tiny logo

Stay Connected

SOC2 compliance badge


© Copyright 2024 Tiny Technologies Inc.

TinyMCE® and Tiny® are registered trademarks of Tiny Technologies, Inc.