终于建了一个自己个人小站:
https://huangtianyu.gitee.io
,以后优先更新小站博客,欢迎进站,O(∩_∩)O~~
在使用git的时候往往会保存一些东西,在保存的时候使用的就是git stash,强大的git使得保存修改和恢复修改变的很容易,但有时候时间久了不记得stash里面的内容是什么了,通过在stackflow里面查找,找到了一个好的方法。其网址是:
http://stackoverflow.com/questions/10725729/git-see-whats-in-a-stash-without-applying-stash
当利用git stash pop弹出来会有些耗费时间,这时可以使用git stash show来查看stash里面保存的内容。
在git bash上可以使用git --help stash来查看git stash命令的用法,当在stash后加show时,官方给出的介绍如下:
show [<stash>]
Show the changes recorded in the stash as a diff between the stashed state and its original parent. When no
<stash>
is given, shows the latest one. By default, the command shows the diffstat, but it will accept any format known to
git diff
(e.g.,
git stash show -p stash@{1}
to view the second most recent stash in patch form). You can use stash.showStat and/or stash.showPatch config variables to change the default behavior.
翻译如下:显示修改在stash状态与原版本之间的不同变化。当没有<stash>给定时,显示最新stash的变化。默认情况下,命令显示diffstat,它可以接受任何已知的git diff格式(例如,git stash show -p stash@{1}是查看第二最近stash的变化)。你可以使用stash.showstat和/或stash.showpatch配置变量来改变默认的行为。
也就是使用git stash show -p stash@{1}来查看stash的内容变化。
保存所有未提交的修改:
git
stash
(本地保存,没有注释)
保存所有未提交的修改:
git
stash
save 'xxxx(注释)'(本地保存,有注释)
查看
现有的
stash
:
git
stash
list
查看
最新
stash
和本地的差异:
git
stash
show(只能看到
文件
)
查看
指定
stash
和本地的差异:
git
stash
show
stash
@{index}(只能看到
文件
)
查看
最新
stash
和本地的详细差异:
git
stash
show -p(能看到具体修改的地方).........
svn-
stash
就像
git
stash
命令一样,但是对于Subversion。 如果您不懂
git
,则应该阅读 Svn-
stash
允许您隐藏不想立即提交的更改。 在某些情况下,这可能会更有用。
我喜欢
git
,我认为它应该用在任何程序员开始的新项目中(如果您不这么认为,欢迎与我讨论它,但是您可以之前阅读。:) )。 但是,在我现在正在工作的一些旧项目中,从svn到
git
的迁移非常困难或不可能。
Git
有一组我通常使用的很棒的命令(例如隐藏),svn没有直接等效的命令。 svn-
stash
试图将
git
stash
命令的某些功能移植到Subversion中。
目前,此命令仅
在平常的工作中,当我们在单独拉取的功能分支中进行开发时,遇到线上出现bug需要进行紧急修复,我们需要切换到主分支,进行代码的修复。但是我们直接在本地切换到主分支,则会提示当前
文件
的改动会丢失。
我们在分支修改代码的时候,可能需要切到另一个分支去写代码,
git
通常是本地无修改时才会允许切换到其他分支,这时候我们既想保存自己写的代码,又想切换到其他的分支,那么这时候就用到了
git
stash
命令。
git
stash
的作用是把所有未提交的代码进行存储,它可以获取到工作目录的中间状态(也就是追踪修改的
文件
以及暂存的变更),它其实是将你的变更存储到了一个堆栈中,随时可以重新使用。
git
stash
相关命令
1、
git
stash
list ...
git
stash
会将当前本地的修改保存到本地
git
stash
list
查看
当前
stash
的记录
git
stash
pop 取出
stash
,并删除记录, 默认是最近一次
git
stash
pop + “
stash
@{X}” 取出X记录
git
stash
apply 取出
stash
,不删除记录
git
stash
apply + “
stash
@{X}” 取出X记录
git
stash
drop + “
stash
@{X}” 删除X记录
git
stash
push /.../... : 存取指定的
文件
;
git
stash
-m "存储的信息" : 给当前压栈存储的修改添加说明信息(如果没有指定信息,则说明信息为最新的commit信息)
git
stash
list :
查看
所有的压栈修改;
git
stash
show
stash
@{0} :
查看
某一个压栈修改了哪几个
文件
;
git
stash
show -p
stash
@{0
git
status命令表示:
文件
,
文件
夹在工作区,暂存区的状态,下图就是
文件
,
文件
夹三种状态:
Changes to be committed:
(use “
git
restore --staged …” to unstage)
new file: bbbb.txt
Changes not staged for commit:
(use “
git
add …” to update what will be committed)
(use “
git
restore …” to discard changes
Save your local modifications to a new
stash
entry and roll them back to HEAD (in the working tree and in the index).
把修改储藏到
stash
栈中,把工作区和index区回溯到HEAD的版本。
.
git
/refs/
stash
中,存储的是最后一个
stash
对应的节点指针
在 .
git
/log/refs/
stash
中可以看到我们全部的
stash
记录信息
git
stas
一、
git
stash
1、
git
stash
保存当前工作进度,会把暂存区和工作区的改动保存起来。执行完这个命令后,在运行
git
status命令,就会发现当前是一个干净的工作区,没有任何改动。使用
git
stash
save 'message...'可以添加一些注释
2、
git
stash
list
显示保存进度的列表。也就意味着,
git
stash
命令可以多次执行。
git
stash
可用来暂存当前正在进行的工作, 比如想pull 最新代码, 又不想加新commit, 或者另外一种情况,为了fix 一个紧急的bug, 先
stash
, 使返回到自己上一个commit, 改完bug之后再
stash
pop, 继续原来的工作。
基础命令:
$
git
stash
$do some work
$
git
stash
pop
Git
stash
...
常用
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 : 显示第一个存储的