Git 實用技巧:git stash


我們經常會遇到這樣的情況:

正在dev分支開發新功能,做到一半時有人過來反饋一個bug,讓馬上解決,但是新功能做到了一半你又不想提交,這時就可以使用git stash命令先把當前進度保存起來。然后切換到另一個分支去修改bug,修改完提交后,再切回dev分支,使用git stash pop來恢復之前的進度繼續開發新功能。

1. stash當前修改

  • git stash
    保存當前工作進度,會把暫存區和工作區的改動保存起來。執行完這個命令后,在運行git status命令,就會發現當前是一個干凈的工作區,沒有任何改動。
  1. stash是本地的,不會上傳到服務器上;
  2. 使用git stash save 'message...'可以添加一些注釋。

2. 查看現有stash

  • git stash list
    顯示保存進度的列表。也就意味着,git stash命令可以多次執行。

3. 重新應用緩存的stash

  • git stash pop [–index] [stash_id]
    恢復之前緩存的工作目錄。
  1. git stash pop :恢復最新的進度到工作區。git默認會把工作區和暫存區的改動都恢復到工作區,同時刪除該進度;
  2. git stash pop stash@[stash_id]:恢復指定的進度到工作區,如:git stash pop stash@{1}stash_id是通過git stash list命令得到的;
  3. 通過git stash pop命令恢復進度后,會刪除當前進度;
  4. git stash apply stash@{1}:恢復進度后,不會刪除當前進度,默認使用最近的stash(即stash@{0})。

4. 移除stash

  • git stash drop [stash_id]
    刪除一個存儲的進度,如: git stash drop stash@{0}
  1. 如果不指定stash_id:,則默認刪除最新的存儲進度;
  2. git stash clear:刪除所有存儲的進度。


免責聲明!

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



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