git stash用於將當前工作區的修改暫存起來,就想堆棧一樣,可以隨時將某一次緩存的修改再重新應用到當前工作區。正確的使用可以極大的提高工作效率。
eg:
1.先初始一個測試git倉
隨便一個目錄,進入操作:
$ git init
創建一個文件:
$ touch test
$ git add .(add后跟的.表示“把工作時的所有變化提交到暫存區,包括文件內容修改(modified)以及新文件(new),但不包括被刪除的文件”)
$ git commit -m "先將創建的文件add"
2.暫存當前修改內容(git stash),必須把修改的文件git add后才可以git stash
現在test中插入文字,如下:
$ vim test(輸入i開始編輯,Esc退出編輯,:wq保存退出文本。注意輸入法要在英文狀態,不然不識別會閃屏)
成功后,考慮修改記錄。但修改后發現不合適,想回退比較麻煩,此時git stash應用場景出現:將修改暫存起來
3.彈出修改內容(git stash pop)
重新編輯后的內容,不合適需要回退,可以用git stash pop命令,彈出剛才的內容(注意先用git checkout . 清空工作區)
注意:git stash pop彈出成功后,暫存列表里面就沒有了,如果當前工作區不干凈,彈出時有沖突,則暫存列表會繼續保留修改
4.可以保持多個修改(針對需要保存的文件進行同樣的操作)
eg:對文本,開始第一次輸入嘗試,保存后錄入“第二次輸入嘗試”,再保存進行“第三次輸入嘗試”
5.查看保存的內容列表(git stash list)
eg:保存了文本1,文本2操作。可以通過git stash list查看保存內容列表
stash@{0}和stash@{1},需要使用git stash show stash@{X}命令來查看,其中‘X’表示列表號;
stash@{0}對應“文本2”的修改, stash@{1}對應“文本1”的修改
入棧的修改,其代號為0,循環命名。
