Git/C2/Stashing-and-Cleaning/English-timed

From Script | Spoken-Tutorial
Jump to: navigation, search
Time
Narration
00:01 Welcome to the spoken tutorial on stashing and cleaning in Git.
00:07 In this tutorial, we will learn about stashing.
00:11 We will learn how to:

Create a stash Apply a stash and Clean a stash

00:19 To record this tutorial, I am using:

Ubuntu Linux 14.04 Git 2.3.2 and gedit Text Editor

00:32 You can use any editor of your choice.
00:36 To follow this tutorial, you must have knowledge of Git commands and branching in Git.
00:43 If not, for relevant tutorials, please visit our website.
00:48 Let us learn about stashing.
00:51 Stashing is used to save temporary changes of a branch.
00:57 It helps to pause the current work without committing it, when switching branches.
01:04 Stash of the temporary changes can be revoked at any time.
01:08 Recall that we already came across the term stash, earlier in this tutorial series.
01:16 Now, let’s learn it in more detail.
01:20 Let us begin by opening the terminal.
01:25 We will open our Git repository mywebpage which we created earlier.
01:30 Type: cd space mywebpage and press Enter.
01:35 I will continue to use html files for demonstration. You may use any file type of your choice.
01:44 From here onwards, please remember to press the Enter key after typing every command on the terminal.
01:52 First, we will check the branch list by typing git space branch.
01:58 I have already created a branch named chapter-three.
02:03 I have done a commit inside it, for demonstration purpose.
02:08 Please make sure that you also create a new branch and make a commit inside it.
02:15 We will go into the branch chapter-three by typing git space checkout space chapter-three.
02:23 Let’s check the Git log.
02:26 This is the commit which I made in the chapter-three branch for demonstration.
02:31 Let’s check the folder content by typing "ls".
02:35 If you are working in Windows operating system, use "dir" command in place of "ls" command.
02:43 Note that here we have three html files.
02:47 Now, we’ll make some changes on the file mypage.html.
02:53 Let us open the file mypage.html by typing gedit space mypage.html space ampersand.
03:03 I will copy and paste some lines into this file, from my Writer document, which I had saved earlier.
03:11 Then save and close the file.
03:14 To check the Git status, type: git space status
03:19 We can understand that our changes are not staged yet.
03:24 When we work in a big project, we may need to switch branches frequently.
03:30 Now, let’s say, we want to go back to our master branch to work on something else.
03:37 Type: git space checkout space master.
03:41 This error shows that we can't switch back to other branches without committing the changes.
03:48 I don't want to commit the changes right now, as my work is just half-done.
03:55 If we will forcefully exit this branch using the hyphen hyphen force flag, the changes will get discarded.
04:04 But, what if I want to save the changes temporarily? This will be done using Stashing.
04:11 We can save the changes temporarily by typing git space stash space save space within double quotes “Stashed mypage.html”.
04:24 Here, “Stashed mypage.html” is the stash name I have given. You can name it as per your preference.
04:34 On the terminal, the stash name and the branch name where the stash is created, are displayed.
04:42 We will check the Git status by typing git space status. You can see the message “nothing to commit”.
04:51 So, we can switch branches now.
04:55 Now, let's try to go into master branch by typing git space checkout space master.
05:03 Note that after stashing, we can switch to other branches.
05:07 Next, let us see another way of stashing.
05:11 For that, again I will go to chapter-three branch by typing git space checkout space chapter-three.
05:20 Now, I will edit the file history.html. Type: gedit space history.html space ampersand.
05:31 I will add some lines from my Writer document here.
05:35 Then save and close the file.
05:38 Let's check the Git status by typing git space status.
05:44 Say, for example, in stash, I want to save these changes in another way. Type: git space stash.
05:54 Note that we didn't give the stash name here.
05:58 If we don't give the stash name, the stash will be saved in the name of the latest commit.
06:04 Next, we will check whether the stash name and the latest commit are same.
06:10 Let's check the Git log first.
06:14 To check the stash list, type: git space stash space list.
06:20 You can see that the latest commit and the latest stash name are same.
06:25 Note that the latest stash is listed first which means the stashes are listed in chronological order.
06:35 This is the stash id which will be generated automatically.
06:40 I will create one more stash for demonstration purpose.
06:45 For that, I will edit the file story.html. Type: gedit space story.html space ampersand.
06:55 I will add some lines in the file story.html.
07:00 Then save and close the file.
07:03 Now, I will save the changes in a stash.
07:07 Type: git space stash space save space within double quotes “Stashed story.html”.
07:17 Let's check the stash list by typing git space stash space list.
07:24 We can see that now we have three stashes in the chapter-three branch.
07:30 In certain situations, we may not remember what changes we have saved in the stashes.
07:36 Let us see how to check it.
07:40 Say, for example, I want to see the details of stash@{0}.
07:45 So, type: git space diff space stash at the rate (@) symbol within curly brackets zero.
07:54 We can see the changes of story.html. That is what we saved in stash@{0}.
08:01 Next, we will continue to work on the stashed files.
08:06 For that, first we have to apply the stashes.
08:10 To check the stash list, type: git space stash space list.
08:17 For example, now we will apply the stash@{1}.
08:21 To do so, type git space stash space apply space stash @ (at the rate symbol) within curly brackets one.
08:33 If you don't mention the stash id, the latest stash (i.e) stash@{0} will be applied.
08:40 You can see that our stash is applied successfully.
08:44 Let's check the stash list by typing git space stash space list.
08:51 We can see the stash@{1}, still in the list and this may lead to confusion in future.
08:58 So, after applying a stash, it is better to delete it manually.
09:03 To delete the stash@{1}, type: git space stash space drop space stash@ (at the rate symbol) within curly brackets one.
09:16 To check the stash list, type: git space stash space list.
09:22 We can see that our stash@{1} is removed. And stash@{2} became stash@{1}.
09:30 Now, we will learn to apply a stash in another way. Type: git space stash space pop.
09:39 We can see that our stash@{0} is applied.
09:43 So, if we use stash pop command, the most recent stash (i.e) stash@{0} will be applied.
09:52 Again, we will check the stash list by typing git space stash space list.
09:59 Now, we can see that stash@{0} is removed. And, stash@{1} became stash@{0}.
10:07 So, the stash pop command will apply the stash@{0} and delete it automatically.
10:15 Next, we will learn how to remove all the stashes at once.
10:20 To delete all the stashes from our repository, type: git space stash space clear.
10:28 Again, we will check the stash list by typing git space stash space list.
10:36 We can see that our stash list is empty now.
10:40 With this, we come to the end of this tutorial.
10:44 Let us summarize.
10:46 In this tutorial, we have learnt about Stashing.
10:51 We also learnt how to:

Create a stash Apply a stash and Clean a stash.

10:58 As an assignment- Create three stashes in your repository.
11:03 Explore the command git stash show.
11:07 Understand the difference between the commands git stash show and git stash show stash@{1}.
11:14 Apply the latest stash (Use – git stash pop)
11:21 and delete all the stashes from the repository.

(Hint – git stash clear)

11:28 The video at the following link summarizes the Spoken Tutorial project. Please download and watch it.
11:36 The Spoken Tutorial Project team conducts workshops and gives certificates to those who pass online tests. For more details, please write to us.
11:48 Spoken Tutorial Project is funded by NMEICT, MHRD, Government of India.
11:55 More information on this mission is available at the following link.
12:01 This is Priya from IIT Bombay. Thanks for joining.

Contributors and Content Editors

PoojaMoolya, Sandhya.np14