ToB企服应用市场:ToB评测及商务社交产业平台

标题: Git进阶(八):git stash 与 git add_git stash和git add区别 [打印本页]

作者: 飞不高    时间: 昨天 23:26
标题: Git进阶(八):git stash 与 git add_git stash和git add区别


一、git stash

可以或许将全部未提交的修改(工作区和暂存区)生存至堆栈中,用于后续恢复当前工作目录。
总的来说,git stash命令的作用就是将目前还不想提交的但是已经修改的内容进行生存至堆栈中,后续可以在某个分支上恢复出堆栈中的内容。这也就是说,stash中的内容不但仅可以恢复到原先开发的分支,也可以恢复到其他任意指定的分支上。git stash作用的范围包括工作区和暂存区中的内容,也就是说没有提交的内容都会生存至堆栈中。
1.1 git stash 两种应用场景

对于多人并行开发,维护同一仓库工作场景,经常会出现文件归并冲突的情况,常见场景如下:
1.1.1 改动同一分支

我在本地修改好后,发现远程分支已经被改动了,此时我本地也被改动了就造成了冲突,无法push大概pull。
此时可以使用git stash:
1.1.2 不鉴戒改动其他分支

当正在dev分支上开发某个项目,这时项目中出现一个bug,必要紧急修复,但是正在开发的内容只是完成一半,还不想提交,这时可以用git stash命令将修改的内容生存至堆栈区,然后顺利切换到hotfix分支进行bug修复,修复完成后,再次切回到dev分支,从堆栈中恢复刚刚生存的内容。
大概由于疏忽,本应该在dev分支开发的内容,却在master上进行了开发,必要重新切回到dev分支上进行开发,可以用git stash将内容生存至堆栈中,切回到dev分支后,再次恢复内容即可。
比方忘记切换分支,直接在master分支上做改动,这里假设我的分支是test分支。
顾名思义,stash就是一个栈,把必要暂存的文件存到栈中,把代码恢复到前次拉取的状态以进行操纵,而git stash pop 就是让栈顶元素出栈并删除。
git stash apply 则是只取栈顶元素,但是不删除。
这样会有一个显而易见后果,如果我再次实行git stash,新的改动将会出如今栈顶,栈中元素会越来越多,此时可以使用 git stash list 命令检察栈中元素,此时每个栈中元素会有自己对应的编号。
使用git stash apply stash@{0} (0可以换成对应编号),来添加不同改动。同样,也可以 git stash drop stash@{0} 来删除对应改动。
git stash clear 可以清空。
1.2 git stash 常用命令

git stash 常用命令:

   !阐明!: 新增的文件,直接实行 stash 是不会被存储的,如果要生存这个新增的文件,必要首先实行 git add 命令把文件添加到git版本控制中,然后再实行 git stash 命令进行缓存。
  二、git stash 与 git add 关系

git add 只是把文件加到 git 版本控制里,并不等于就被 stash 起来了,git add 和 git stash 没有必然关系,但是实行 git stash 能准确存储的前提是文件必须在 git 版本控制中才行。
通例 git stash 的一个限制是它会一下暂存全部的文件。有时,只备份某些文件更为方便,让另外一些与代码库保持划一。一个非常有效的技巧,用来备份部分文件:

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4