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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`git stash` 命令用于将当前分支的修改保存到一个临时存储区(也称为“堆栈”),以便你可以在不创建新分支的情况下切换到其他分支。这可以帮助你避免在工作区中留下未完成的修改,从而避免不必要的冲突。 当你运行 `git stash` 命令时,Git 会将当前分支的修改保存到一个堆栈中,并将工作区恢复到最后一次提交的状态。这样,你就可以在不影响其他分支的情况下切换到其他分支,进行其他的工作。 你可以使用 `git stash list` 命令查看所有保存在堆栈中的修改。如果你想要恢复之前保存的修改并将其应用到工作区中,可以使用 `git stash apply` 命令。如果你想要删除之前保存的修改并清空堆栈,可以使用 `git stash drop` 命令。 `git stash` 命令的常用选项包括: - `-u`,将未跟踪的文件也包含在堆栈中; - `-a`,将所有的修改(包括未跟踪的文件)都保存到堆栈中; - `-m "message"`,指定堆栈的提交信息。 举例来说,如果你在当前分支上有未完成的修改,并想要切换到其他分支进行工作,可以使用以下命令将修改保存到堆栈中: ``` git stash ``` 如果你想要查看当前保存在堆栈中的修改,可以使用以下命令: ``` git stash list ``` 如果你想要恢复之前保存的修改并将其应用到工作区中,可以使用以下命令: ``` git stash apply ``` 如果你想要删除之前保存的修改并清空堆栈,可以使用以下命令: ``` git stash drop ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值