美文网首页
stash 操作暂存区

stash 操作暂存区

作者: 黄刚刚 | 来源:发表于2019-06-13 11:09 被阅读0次

涉及命令:git stash、stash list、git stash apply、git stash drop

git stash:添加临时暂存(暂存当前工作区状态,并将工作区"HEAD"指针指向位于工作区的上一次提交)

stash list:列出临时暂存的列表

git stash apply:恢复临时暂存(恢复临时暂存会与当前的工作区状态合并)

git stash drop:删除临时暂存

操作例子:
[root@localhost hgg]# git status

# 位于分支 master

无文件要提交,干净的工作区

步骤解释:查看当前工作区状态是一个干净的工作区

[root@localhost hgg]# git branch dev

[root@localhost hgg]# git checkout dev

切换到分支 'dev'

步骤解释:创建并检出一个"dev"分支

[root@localhost hgg]# touch a.php

[root@localhost hgg]# git add .

步骤解释:在"dev"分支中新建一个"a.php"文件 , 并add添加到版本控制,但是还未提交,

这时我们临时有个bug要处理,"a.php"的功能还没做好所以不能提交到版本库,下面先去创建分支处理bug

[root@localhost hgg]# git branch bug

[root@localhost hgg]# git checkout bug

A      a.php

切换到分支 'bug'

[root@localhost hgg]# ls

a.php

步骤解释:创建并检出一个"bug"分支,但是"dev"分支还未提交的"a.php"文件也在当前的新分支中,这显然不是我们想要的,所以就需要使用git stash 命令操作暂存区了

[root@localhost hgg]#

[root@localhost hgg]# git checkout dev

A      a.php

切换到分支 'dev'

步骤解释:切换回到"dev"分支

[root@localhost hgg]# git stash

Saved working directory and index state WIP on dev: 40f08cc 删除所有文件

HEAD 现在位于 40f08cc 删除所有文件

步骤解释:使用git stash命令把工作区的更改单独存储起来,通过提示的信息可以看到,现在我们的工作区"HEAD"指针位于工作区的上一次提交(本工作区上一次提交是删除了所有文件,所以当前工作区应该没有文件了)

[root@localhost hgg]# git stash list

stash@{0}: WIP on dev: 40f08cc 删除所有文件

步骤解释:使用git stash list命令查看存储区的存储列表

[root@localhost hgg]# git status

# 位于分支 dev

无文件要提交,干净的工作区

[root@localhost hgg]# ls

步骤解释:查看工作区状态和目录的文件列表,确实回到了上一次的提交状态,这个时候回去解决bug先

[root@localhost hgg]# git checkout bug

切换到分支 'bug'

[root@localhost hgg]# ls

[root@localhost hgg]# touch bug.php

[root@localhost hgg]# git add .

[root@localhost hgg]# git commit -m "bug修复完成"

[root@localhost hgg]# git checkout dev

切换到分支 'dev'

[root@localhost hgg]# ls

步骤解释:切换到"bug"分支,修复完bug后提交,再切换到"dev"分支,

[root@localhost hgg]# git merge bug

[root@localhost hgg]# ls

bug.php

步骤解释:合并"bug"分支就可以看到"bug"分支的文件了,当然也可以不合并,我们要继续我们"dev"分支之前的"a.php"文件的工作了

[root@localhost hgg]# git stash apply

# 位于分支 dev

# 要提交的变更:

#  (使用 "git reset HEAD <file>..." 撤出暂存区)

#

#      新文件:    a.php

#

[root@localhost hgg]# ls

a.php  bug.php

步骤解释:使用git stash apply命令从临时暂存区中恢复工作区状态,再次查看,可以看到,a.php文件又出现了,所以可以继续之前的工作了

[root@localhost hgg]# git stash list

stash@{0}: WIP on dev: 40f08cc 删除所有文件

步骤解释:从临时暂存区中恢复工作区状态后临时暂存还是存在

[root@localhost hgg]# git stash drop

丢弃了 refs/stash@{0} (04a1d0e71bdf876d0e2154031ef5c8785f69b5a0)

[root@localhost hgg]# git stash list

步骤解释:删除临时暂存

相关文章

  • stash 操作暂存区

    涉及命令:git stash、stash list、git stash apply、git stash drop ...

  • Git常用命令

    新建一个Hotfix 添加进暂存区stash 列出当前的stash 将某一个stash恢复到工作区

  • git 缓存区

    //第一种方式 存到暂存区git add.git stash//取出的时候使用git stash pop //第二...

  • git stash 用法

    一、常用git stash命令: 1、git stash 能够将所有未提交的修改(工作区和暂存区)保存至堆栈中,用...

  • git stash 你真的理解正确了吗?

    git stash 保存当前工作区和暂存区进度,回退到上一个 git commit 之后的状态git stash ...

  • git 学习记录(命令)

    git学习记录 分支篇 仓库 分支合并 stash 默认情况下,git stash会缓存下列文件:添加到暂存区的修...

  • git stash 暂存区

    当需要拉取远端文件,但又不想提交正在修改的文件时,可以使用git stash 命令将当前的工作区保存(藏匿)起来,...

  • Git笔记(不定期更新)

    Git Common Command git rm 移除文件 git stash 暂存 更新暂存区内容到工作区 其...

  • Git学习使用总结(持续更新)

    常用操作 远程操作 分支操作 stash操作 标签操作 参考资料 git简明教程

  • git 暂存 stash 操作

    git stash暂存的操作git stash暂存的操作多人开发,经常遇到开发某一个分支时,需要处理其他事情,这时...

网友评论

      本文标题:stash 操作暂存区

      本文链接:https://www.haomeiwen.com/subject/tekjfctx.html