Restoring a repository in Git
Sometimes while using Git, we come across a situation where we want to pull the latest changes from the remote repository and it conflicts with the existing modifications or files, then we have to push those files to the storage.
Git provides us with a feature to store snapshots of the changes we make without committing them to our repository, this area of Git is called Stash.
It is not associated with our working tree, nor with the staging area. This is a very effective function to temporarily save our changes and clean up the working tree to start a new work.
Later depending on our needs, we can omit or revert the changes we made and then reapply them in a new branch or another branch.
This article will discuss git stash and how to overcome messy Git situations when restoring a stash. This function is used when we make changes to a branch that we don't want to commit, but we want to switch to another branch.
Storing changes in Git
In order to save the changes in storage for any purpose, we will execute the command:
$ git stash save "optional message for yourself"
This command mentioned above will save our changes and return them to the working directory. The stashed changes can be obtained from any branch in this repository.
Viewing stashed changes in Git
To view the stashed changelist, we will execute the command:
$ git stash list
As mentioned before, this command will stash@{0}
show us a list of saved changes in the format of . stash@{0}
represents the name of the stash and the curly brackets ( ) containing a number { }
are the index of that stash.
If we have a lot of stashed changes, each collection will have a different index depending on the order they were saved.
If we forget what changes we made in the stash , we can view them by the following command. The following command will show us all the past changes in the stash .
$ git stash show stash@{0}
Restore stashed changes in Git
There are two ways to restore or retrieve our stashed changes from the stashed bucket and apply them to the current branch we are going to work on in future. Both the commands are mentioned below one by one:
Git Staging Application
With the command mentioned below we can apply the changes leaving a copy in the storage so we can use it in the future if we want to use it for any reason.
$ git stash apply STASH-NAME
If there are multiple stashes , we can specifically mention the name of the stash so that we will get only the specified stash .
$ git stash apply
If we don't enter a name, Git will automatically apply the last pushed stash on top.
Git stash pop
We can also apply the changes through the command mentioned below, but this command will delete the files from the storage and we will not be able to use them later.
$ git stash pop STASH-NAME
Removing stashed changes in Git
Whenever we want to remove the stashed changes after applying them, we will execute the following command. Despite this, this command will remove all changes from the storage and we will no longer be able to use them later:
$ git stash drop STASH-NAME
To clean the entire storage area, we will run the following command:
$ git stash clear
For reprinting, please send an email to 1244347461@qq.com for approval. After obtaining the author's consent, kindly include the source as a link.
Related Articles
Git authentication
Publish Date:2025/03/28 Views:163 Category:Git
-
This article demonstrates connecting a local repository to a remote repository on GitHub/Gitlab without getting 身份验证失败 error messages. Creating a local repository from scratch in Git To create a local repository from scratch, fo
Log graphs in Git
Publish Date:2025/03/28 Views:96 Category:Git
-
This article shows you how to use git log the command to graphically view the commit history in Git. Viewing log graphs in Git The command git log displays all the repository history at once snapshots(commits) . This command has a default f
Git refresh remote branch
Publish Date:2025/03/28 Views:93 Category:Git
-
Git is considered to be the most accurate and the most used software by developers in their projects and can be operated by multiple developers simultaneously. It provides many unique and quirky features to the developers which are very dif
Updating Git on Mac
Publish Date:2025/03/28 Views:181 Category:Git
-
When working on Git, you should stay updated with the latest version to get its latest features. This article will discuss how to install and update the latest version of Homebrew and Git on your personal computer. Homebrew on Mac Homebrew
Enable Git Tab Auto-Complete
Publish Date:2025/03/28 Views:109 Category:Git
-
This tutorial demonstrates how to enable git tab autocompletion. Importance of enabling Git Tab auto-completion When developers work with source code, they mostly prefer Git as it is a very familiar and convenient platform for developers th
Reverting local changes to a previous state in Git
Publish Date:2025/03/28 Views:118 Category:Git
-
Suppose Mario is assigned a task and is about to complete it, but the client changes their requirements and asks Mario to stop working on the previously assigned task, what would be the perfect solution to this dilemma? In this article, you
Adding files in Git
Publish Date:2025/03/27 Views:75 Category:Git
-
This article will discuss different ways to add files to our repository on Git. In Git, use git add the command to add all files We can git add add all the files without exception using the command as shown below. git add -A -A The -p param
Different ways to add files to staging with Git
Publish Date:2025/03/27 Views:199 Category:Git
-
While the command git add is probably the most commonly used command for adding files to your stash, other flags may come in handy depending on the situation. This article takes a deep dive into git add the flags you can use with the comman
Git add folder
Publish Date:2025/03/27 Views:100 Category:Git
-
git add Used to add specific folders and files. This tutorial will handle it in a modern way git add folder . git add Add all or specific folders and files to staging in Git using Use the following syntax to add files: git add file Use the