git stash命令详解

git stash

工作区和暂存区的内容是公共的,不属于任何一个分支

所以在切换分支的时候务必保证工作区是干净的,否则切换过去的时候会导致那个分支也被修改了

如果不想add和commit,那可以用git stash将工作现场暂存一下

需要注意的是:

git stash所存储的修改记录是全局的,不是指定某个分支下的缓存。通俗的讲,git stash是git工具维护的一个全局的栈,会按照调用git stash的顺序,将各个分支下git stash的修改保存起来并压入同一个全局(全分支共享)的

也就是说,每次想要调用方法git stash pop弹出的总是栈顶的那条记录,如果栈顶记录不是当前分支,之前所git stash时的分支,此时弹出的内容会不符当前分支的版本,会产生错误或冲突

命令:

git stash 隐藏当前工作现场,可以相同/不同分支多次stash

git stash list 查看隐藏起来的工作现场

git stash drop 删除工作现场

git stash apply恢复公共现场,恢复后stash的内容不会删除,需要用drop来删除,不是简单的栈结构,可以算是链栈,支持索引弹出制定记录

leel@dirname (branch_1)     <-----------当前所处分支
$ git stash list
stash@{0}: WIP on branch_2: 9b9354d Merge branch 'add_global_rr' into 'branch_2'
stash@{1}: WIP on branch_1: f68749d bugfix
stash@{2}: WIP on branch_2: 23fe861 bug fix 4 
stash@{3}: WIP on branch_3: c06b8da bug fix
stash@{4}: WIP on branch_4: 9ed1dd6 move reload method to parent class
stash@{5}: WIP on branch_5: c833e3f Merge branch 'fix_add_version' into 'branch_2'

$ git stash pop stash@{1}

git stash pop 恢复栈顶的公共现场,恢复后会删除对应工作现场,用list无法看见

调用stash pop 或者 stash apply的时候要注意先用list查看一下当前栈的状态,根据所在分支进行调用

博客内容均系原创,未经允许严禁转载!
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇