Git Stash

Git Stash is a built-in command that temporarily stores all of the most recent modifications to the code. That is, the modifications are stored, and the code is reset to its previous state.

Git is software that allows a group of developers to keep track of changes and alterations to a source code throughout the development of software.

A seamlessly working software is not a one-person job. A crew of devoted developers devotes their time and talents to creating high-quality software. Git comes to the rescue here since it provides a platform for developers to generate, edit, and exchange code.

For those looking for a job as a software engineer, understanding and experience with Git is not only a plus but also a necessity.

Git is a software development platform that includes a number of instructions that make the developer’s job easier. Git Stash is one such command.

What is Git stash, and why is it necessary to use Git?

Let’s delve into the article to know why.

What is Git Stash?

Git Stash, also known as stashing, is a valuable feature that allows programmers who aren’t sure what they’re doing to save their changes independently until they can figure it out.

How to Create and Save Git Stash?

Creating a Git stash is as easy as pie. All you have to do is run the git stash command without any other commands, as shown below:

$git stash

All changes staged for commit in your current working directory will be saved on the side for later use after running the command described above.

The result after running the above command will be, for instance, as follows:

$ git stash

Saved working directory and index state WIP on branch1: 809c568 Initial commit

The git stash stores the changes made in the working directory locally that is inside your projects directory as /.git/refs/stash

The stash not only lets you save the changes but also helps you retrieve the changes whenever you need them.

It helps a lot when you need to switch between contexts, enabling you to preserve changes that you may require later, and is the quickest way to clean up your working directory while leaving modifications intact.

How to Run Git Stash? 

Before we mentioned how to run the Git stash command, here is a more extensive description of how to use Git Stash.

  1. Save changes to branch A.
  2. Run the git stash command.
  3. Check out branch B.
  4. Fix the bug in branch B.
  5. Commit your work and push it to the remote.
  6. Check out branch A
  7. To get your stashed changes back, run git stash pop.

Git stash pop is the command used to retrieve the stored changes or files from the stash and put them back in the development environment. After completing its job, the stash is deleted from the history.

Likewise, there are some other standard git stash options you will need to know:

  • Git stash push: This command creates a new stash and then reverses the status of all updated files.
  • Git stash applies: This command returns the files in a stash to the development workspace, but it does not remove the stash from history.
  • Git stash list: git stash list is a command that displays the history of your stash in chronological order.
  • Git stash clear: git stash clear removes all entries in the git stash history.

Retrieving Git Stash

The purpose of using Git stash is to store the temporary changes which may come in help for later use. This means there are special commands which serve this purpose.

The pop and apply commands are used to retrieve the changes applied in the latest stash stash@{0}.

Though the goal of both is to retrieve the changes, the results are substantially different. After retrieving, the pop deletes the stored stash, whereas the apply keeps a copy for subsequent usage.

They both are used as follows:

Git Stash Pop

$ git stash pop stash@{1} 

Git Stash Apply

$ git stash apply stash@{1}

Removing the Stash

Sometimes, the stored stashes may not be in use or are forgotten. If that’s the case, instead of leaving the stash stored, the better choice would be to remove them on time.

Cleaning the stash can be done by using the following commands:

  • git stash clear: 

The git stash clear empties the stash list by removing all the stashes. The clear command is used as follows:

$ git stash clear

  • git stash drop <stash_id>:

The git stash drop <stash_id> deletes a particular stash from the stash list. The drop command is used as follows:

$ git stash drop stash@{stash_index}

Conclusion

One of the most important aspects of any software development project is making regular modifications to the source code. Though it is unavoidable, many developers find themselves in situations where they are unsure of their modifications, which is why Git Stash is such a valuable command that allows them to save, retrieve, and apply their changes once they are comfortable with them.

If what you’ve just read is all new to you, why not dip your toe in the water of code? Try our free 5 Day Coding Challenge and learn the basics of HTMLCSS and JavaScript. Register now through the form below. 

Semantic HTML: A11y Series - 4

What is semantic HTML? Semantic HTML forms the building blocks of the web. They are the correct ingredients to make a cake. It’s the difference between putting 4 cups of flour into a bowl or putting flour, butter, sugar, and eggs into a bowl. One of those makes a cake (or in our case, a […]

Alt text with Images - A11y Series 3

What is alt text? Alternative text, more commonly known as alt text, is the text that users will hear if they are unable to view an image – an alternative option. Alt text is a short, written description of an image, which fully describes the image when the image cannot be viewed. Alt text is […]

Colour & Accessible Websites - A11y series 2

What does it mean to be colour blind? Colour vision deficiency, more commonly known as colour blindness, causes difficulty identifying and distinguishing between certain colours. This is usually genetic and is present from birth. However, it can appear later in life due to other health conditions, medication side effects, or exposure to certain chemicals. Many […]