Git stash用法


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,循環命名。

6.應用任意一次修改到當前目錄(git apply stash@{x})

如果現在又想回到“文本1”的修改,怎么辦呢?在工作區干凈的情況下,要使用 git stash apply stash@{1}。
 注意這時不能使用git stash pop, 它將最棧頂,即stash@{0}的修改彈出來,而func1現在已經是stash@{1}了。
雖然func1的修改已經被彈出應用到當前工作區,其修改內容還繼續保留在暫存列表, 並未丟棄。
  當然,我們可以使用 git stash drop stash@{1}來丟掉stash@{1}

7.保存時打上標記(git stash save)

$ git stash save "標記文本3"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM