1. 程式人生 > 其它 >git stash和git add

git stash和git add

git stash 常用命令:

  1. git stash save “save message” : 執行儲存時,新增備註,方便查詢,只有 git stash 也要可以的,但查詢時不方便識別。

  2. git stash list :檢視 stash 了哪些儲存

  3. git stash show :顯示做了哪些改動,預設 show 第一個儲存,如果要顯示其他存貯,後面加 stash@{$num},比如第二個 git stash show stash@{1}

  4. git stash show -p : 顯示第一個儲存的改動,如果想顯示其他存儲存,命令:git stash show stash@{$num} -p ,比如第二個:git stash show stash@{1} -p

  5. git stash apply :應用某個儲存,但不會把儲存從儲存列表中刪除,預設使用第一個儲存,即 stash@{0},如果要使用其他個,git stash apply stash@{$num} , 比如第二個:git stash apply stash@{1}

  6. git stash pop :命令恢復之前快取的工作目錄,將快取堆疊中的對應 stash 刪除,並將對應修改應用到當前的工作目錄下,預設為第一個 stash,即 stash@{0},如果要應用並刪除其他 stash,命令:git stash pop stash@{$num} ,比如應用並刪除第二個:git stash pop stash@{1}

  7. git stash drop stash@{$num} :丟棄 stash@{$num}儲存,從列表中刪除這個儲存

  8. git stash clear :刪除所有快取的 stash

  • 說明:新增的檔案,直接執行 stash 是不會被儲存的,如果要儲存這個新增的檔案,需要先執行下 git add 把檔案加到 git 版本控制中,然後再 git stash 就可以了

  • 總結下:git add 只是把檔案加到 git 版本控制裡,並不等於就被 stash 起來了,git add 和 git stash 沒有必然的關係,但是執行 git stash 能正確儲存的前提是檔案必須在 git 版本控制中才行。

  • 常規 git stash 的一個限制是它會一下暫存所有的檔案。有時,只備份某些檔案更為方便,讓另外一些與程式碼庫保持一致。一個非常有用的技巧,用來備份部分檔案:
  1. add 那些你不想備份的檔案(例如: git add file1.js, file2.js)
  2. 呼叫 git stash –keep-index。只會備份那些沒有被 add 的檔案。
  3. 呼叫 git reset 取消已經 add 的檔案的備份,繼續自己的工作。