git stash常用指令

我們使用git時,我們在自己分支上對某些文件做了修改,突然需要從其他分支如master分支拉取最新代碼到自己分支上,或者需要切換到其他分支上,由於已有一些文件被修改,這些操作都做不了,會報錯。這是就要用到stash了,stash就是暫存區的意思,可以把我們做的修改先放到暫存區,然後就可以做其他操作,比如上面提到的那兩種。下面是git stash 相關指令

git stash 或者git stash push :將代碼修改部分放入暫存區

USER /e/workspace/projects/EAlbum (develop-zhy)
$ git stash push
Saved working directory and index state WIP on develop-zhy: dfedff9 Add files via upload

git stash list :查看所有暫存記錄

USER /e/workspace/projects/EAlbum (develop-zhy)
$ git stash list

stash@{0}: WIP on develop-zhy: dfedff9 Add files via upload
stash@{1}: WIP on develop-zhy: dfedff9 Add files via upload

git stash pop:彈出棧頂的一條記錄,即stash@{0},同時暫存區刪除這條記錄

USER /e/workspace/projects/EAlbum (develop-zhy)
$ git stash pop
On branch develop-zhy
Your branch is up to date with 'origin/develop-zhy'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   js/index.js

no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (834a5055eea91738c5b74e8e122042af33d365f1)

USER /e/workspace/projects/EAlbum (develop-zhy)
$ git stash list
stash@{0}: WIP on develop-zhy: dfedff9 Add files via upload

git stash show :查看棧頂的一條stash記錄保存的文件

USER /e/workspace/projects/EAlbum (develop-zhy)
$ git stash show
 js/index.js | 1 -
 1 file changed, 1 deletion(-)

git stash show -p:查看棧頂的一條stash記錄保存文件修改的具體的代碼,可以看到index.js文件刪除了一行空格

USER /e/workspace/projects/EAlbum (develop-zhy)
$ git stash show -p
diff --git a/js/index.js b/js/index.js
index 9383fc4..430d1e4 100644
--- a/js/index.js
+++ b/js/index.js
@@ -11,7 +11,6 @@ var index=0;
 var imgs;
 function init(){
     imgs=new Array(7);
-
     for(var i=0;i<imgs.length;i++){
         imgs[i]=new Image();
     }

git stash show stash@{n} 或git stash show stash@{n} -p : 查看堆棧裏某條記錄保存的修改的文件以及改動點

USER /e/workspace/projects/EAlbum (develop-zhy)
$ git stash list
stash@{0}: WIP on develop-zhy: dfedff9 Add files via upload
stash@{1}: WIP on develop-zhy: dfedff9 Add files via upload

USER /e/workspace/projects/EAlbum (develop-zhy)
$ git stash show stash@{1}
 js/index.js | 1 -
 1 file changed, 1 deletion(-)

USER /e/workspace/projects/EAlbum (develop-zhy)
$ git stash show stash@{1} -p
diff --git a/js/index.js b/js/index.js
index 9383fc4..430d1e4 100644
--- a/js/index.js
+++ b/js/index.js
@@ -11,7 +11,6 @@ var index=0;
 var imgs;
 function init(){
     imgs=new Array(7);
-
     for(var i=0;i<imgs.length;i++){
         imgs[i]=new Image();
     }

git stash save "註釋信息":類似於git stash指令,不同點是,git stash save指令可以給stash記錄自定義註釋,而git stash是默認註釋

USER /e/workspace/projects/EAlbum (develop-zhy)
$ git stash save "stash test1"
Saved working directory and index state On develop-zhy: stash test1

USER /e/workspace/projects/EAlbum (develop-zhy)
$ git stash list
stash@{0}: On develop-zhy: stash test1
stash@{1}: WIP on develop-zhy: dfedff9 Add files via upload

git stash apply stash@{n}:對當前分支應用某條stash記錄,但是不會刪除該條記錄,stash列表裏還有這條記錄;要刪除該條記錄,就要用到git stash drop 指令了

USER /e/workspace/projects/EAlbum (develop-zhy)
$ git stash list
stash@{0}: On develop-zhy: stash test1
stash@{1}: WIP on develop-zhy: dfedff9 Add files via upload

USER /e/workspace/projects/EAlbum (develop-zhy)
$ git stash apply stash@{1}
On branch develop-zhy
Your branch is up to date with 'origin/develop-zhy'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   js/index.js

no changes added to commit (use "git add" and/or "git commit -a")

USER /e/workspace/projects/EAlbum (develop-zhy)
$ git stash list
stash@{0}: On develop-zhy: stash test1
stash@{1}: WIP on develop-zhy: dfedff9 Add files via upload

git stash drop :在堆棧中刪除棧頂記錄

git stash drop stash@{n}:在堆棧中刪除某條記錄

USER /e/workspace/projects/EAlbum (develop-zhy)
$ git stash drop stash@{1}
Dropped stash@{1} (69903b4c880fb5e285a31f9fcb325f6e098f615b)

USER /e/workspace/projects/EAlbum (develop-zhy)
$ git stash list
stash@{0}: On develop-zhy: stash test1

git stash clear: 清空所有stash記錄,通過git stash list 查詢已經沒有stash記錄了

USER /e/workspace/projects/EAlbum (develop-zhy)
$ git stash clear

USER /e/workspace/projects/EAlbum (develop-zhy)
$ git stash list

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章