搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
盐析白兔
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
【程序源代码】校园微交流论坛小程序
2
CentOS 7.6 安装 Weblogic
3
JTS Geometry关系判断和分析_geos 容差 geometry是否相交
4
后端接口测试的好用插件(POJO TO JSON)_pojo to json插件
5
使用KEPServerEx仿真数据变化_kepserverex是什么软件
6
AI的Prompt是什么_ai prompt是什么
7
云计算技术原理_云计算部分方法技术运用情况参考出处
8
语义相似度计算与文本匹配_两个文本语义相似度
9
麒麟V10离线rpm安装nginx+php+mariadb环境_麒麟v10离线安装nginx
10
2021-09-29_listnode dummy = new listnode(0, head);
当前位置:
article
> 正文
Git Stash用法_git stash可以分享给其他人看吗
作者:盐析白兔 | 2024-08-13 17:19:52
赞
踩
git stash可以分享给其他人看吗
最近在使用Git管理项目工程的时候,遇到了很多问题,也学习到了很多关于Git常见使用的技巧,下面就其中关于Git Stash的用法和大家分享下。
首先,简单介绍下Git Stash命令的用法,详细的用法在man文档中有相关介绍,下面我来说明常见的使用。
git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。
关于Git Stash的详细解释,适用场合,这里做一个说明:
使用git的时候,我们往往使用branch解决任务切换问题,例如,我们往往会建一个自己的分支去修改和调试代码, 如果别人或者自己发现原有的分支上有个不得不修改的bug,我们往往会把完成一半的代码 commit提交到本地仓库,然后切换分支去修改bug,改好之后再切换回来。这样的话往往log上会有大量不必要的记录。其实如果我们不想提交完成一半或者不完善的代码,但是却不得不去修改一个紧急Bug,那么使用
'
git stash
'
就可以将你当前未提交到本地(和服务器)的代码推入到Git的栈中,这时候你的工作区间和上一次提交的内容是完全一样的,所以你可以放心的修 Bug,等到修完Bug,提交到服务器上后,再使用
'
git stash apply
'
将以前一半的工作应用回来。也许有的人会说,那我可不可以多次将未提交的代码压入到栈中?答案是可以的。当你多次使用
'
git stash
'
命令后,你的栈里将充满了未提交的代码,这时候你会对将哪个版本应用回来有些困惑,
'
git stash list
'
命令可以将当前的Git栈信息打印出来,你只需要将找到对应的版本号,例如使用
'
git stash apply stash@{1}
'
就可以将你指定版本号为stash@{
1
}的工作取出来,当你将所有的栈都应用回来的时候,可以使用
'
git stash clear
'
来将栈清空。
在这里顺便提下git format
-
patch
-
n , n是具体某个数字, 例如
'
git format-patch -1
'
这时便会根据log生成一个对应的补丁,如果
'
git format-patch -2
'
那么便会生成2个补丁,当然前提是你的log上有至少有两个记录。
看过上面的信息,就可以知道使用场合了:当前工作区内容已被修改,但是并未完成。这时Boss来了,说前面的分支上面有一个Bug,需要立即修复。可是我又不想提交目前的修改,因为修改没有完成。但是,不提交的话,又没有办法checkout到前面的分支。此时用Git Stash就相当于备份工作区了。然后在Checkout过去修改,就能够达到保存当前工作区,并及时恢复的作用。
下面,将我使用过程中遇到的一个问题和大家分享:
首先,在Git Stash之后,提交图如下所示:
从图中可以看到,develop和newdevelop是在同一个分支上,因为分支newdevelop是在develop分支的基础上开发的。想加入一个新的特性,所以就开了newdevelop分支,然后就在上面加东西,加特性,该代码。这个时候工作的内容已经变化了,但是develop和newdevelop都是指向同一个提交的,因为newdevelop上面还木有提交。
这个时候,Boss来了,说develop上面有个Bug,赶快改一下,手头的工作先放放,稳定版本不能有缺陷。没办法,当前正在newdevelop上搞的high呢,就Git Stash一下。所以会看到上面有两个节点,红色以及上面一个。就是stash之后的结果,注意是在newdevelop上面进行的stash。
正如前面所说,stash会暂存当前的工作区内容,然后将工作区内容保持和上次提交相同,此时内容都是上面8a32那个提交的内容。从终端中查看相应的信息内容,如下:
印证了签名的说法,newdevelop是有修改,modified,然后stash之后,工作区是最近一次提交,此时newdevelop和develop都是相同的,所以再git status查看发现,都一样,nothing to commit.
然后Stash完成之后,就要Fix Bug了。为此,回到develop分支上进行修复,然后提交,完成后的提交图如下所示:
从途中可以看到,newdevelop还是在下面,因为指向的是老的那个8a32的commit。新的develop由于修复了Bug,所以产生一个新提交。
然后在develop上面修复了Bug之后,在回到newdevelop上面进行一个新的特性的继续编码,此时checkout回去的时候,没有神马内容可以提交,因为都存在Stash中了,没有任何修改。如上图。
那么,恢复工作区内容吧。于是git stash pop(注意这里由于只Stash了一次所以使用pop,具体你存放了多少,要恢复哪一个要自己清楚,否则会出错!)
恢复之后,从上图中可以看到,此时再git status就会发现文件有修改,说明恢复过来了。然后就继续编码,提交一个稳定的新特性版本,如下图,产生的新提交为0906.
然后再查看提交图,会发现,stash pop之后,对应的存放的stash被清空掉了,提交图中,newdevelop上面对应一个新的提交。并且在develop上面。分支的develop那个红色,即为前面修复Bug的那个提交。
总结起来:
操作很简单,但是头脑要清楚。要在哪个分支上修复Bug,要暂存哪个地方的内容,之后修复完了在那个地方提交,然后要到哪个分支上面恢复工作区,都是需要注意的,否则,很容易造成提交图混乱。只有弄清楚了工作流程,才不容易出错,才能保证很高的工作效率。
最后一句:Git是神器,就要看你如何驾驭它了。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/盐析白兔/article/detail/975790
推荐阅读
article
git
stash
的使用...
git
stash
的使用,存储代码_
git
stash
的使用
git
stash
的使用 ...
赞
踩
article
git
stash
用法_
git
slash...
有时候我们代码写到一半突然要切到别的分支上去改代码但是又不想把现在还没写完的代码上传到仓库这个时候就可以使用
git
s...
赞
踩
article
git
stash
的用法_
got
stasj
...
git
stash
的用法(1)
git
stash
save “save message” :执行存储时,添加备注,方便...
赞
踩
article
Git
操作中
git
st
as
h
的使用方法
_
as
中
git
st
as
h
...
转载地址:http://blog.csdn.net/wh
_
19910525/article/details/778490...
赞
踩
article
关于在
vs
<
e
m>cod
e
e
m> 中运行 <
e
m>git
e
m> <
e
m>stash
e
m> <
e
m>apply
e
m> <
e
m>stash
e
m>@{0}命令 报<
e
m>
e
rror
e
m>:...
2、打开
vs
<
e
m>cod
e
e
m> 设置--> 搜索sh
e
ll, 然后在T
e
rminal > int
e
grat
e
d > D
e
faul...
赞
踩
article
Git
命令行
操作以及报错信息解决办法(持续更新中。。。)_
git
.exe
stash
push
yo...
1:
命令行
操作1.1:查看当前所在分支:
git
branch -a 或者 -v1.2 : 如果存在新分支,而使用上述命令...
赞
踩
article
git
stash
用法_
git
stash
apply...
1、保存在当前的分支做了修改,需要切换到其他分支时,可以使用
git
stash
保存当前的操作,如果不这么做,你在切换到别...
赞
踩
article
git
stash
的用法_
got
stash
list
...
git
stash
的用法(1)
git
stash
save “save message” :执行存储时,添加备注,方便...
赞
踩
article
git
stash
用法...
git
stash
用于将当前工作区的修改暂存起来,就像堆栈一样,可以随时将某一次缓存的修改再重新应用到当前工作区。一旦用...
赞
踩
article
git
stash
怎么用?...
一、切换分之前,添加改动文件到
stash
;
git
stash
:备份当前的工作区的内容,从最近的一次提交中读取相关内容,让...
赞
踩
相关标签
git
github
stash
Git
命令行
Git报错解决
操作系统
开发工具