Git介绍(五) -- 有关分支中的小问题

问题描述

  我们在开发过程中,一个项目肯定不止一个分支,这里小编就以 master 、blog 两个分支为例,我们先在 master 分支中编辑 a.txt ,由于紧急情况 a.txt 文件还没编辑好,另外分支出现问题,需要切换到有问题的分支进行处理 ,但是我们切换到 blog 分支中,这时我们查看 blog 分支中的 a.txt 中的内容也变了,如下:
在这里插入图片描述

解决问题

 方案一:

  这种方案就是在某一个分支修改文件之后,先 add 并且 commit 之后再去切换分支,这种方式是最常见的,小编就不演示了。

 方案二:

  第一种方式是可取,但总会出现上面的问题,那么这时候就可以使用第二种方式即可解决问题。

  • 使用场景:
      当我在一个分支 master 中修改了文件,但是还没有完全改好,此时我并不想 add/commit,但是这个时候有一个更急迫的事情在另外一个分支 blog 上需要我去做,我必须要切换分支。

   这种情况下,会出现如下问题:

  • 1、从 master 分支切换到 blog 之后,工作区的代码还是 master 分支种的代码,不符合我的工作要求。
  • 2、假设对于问题1无关紧要,在 blog 分支种直接修改工作区的代码,等我在 blog 分支中修改完后提交完,切回到 master分支中,这时我们会发现我们之前写的没提交的代码全没了。

  现在假设一开始 master 和 blog 分支中的文件内容都是一致的,而且两个分支的工作区都是干净的,即没有东西需要 add/commit ,此时,我在 master 中修改了文件,修改完成之后,执行 git status 命令我们看到 master 中有东西需要 add/commit,此时我想切换到 blog 分支中去,但是并不想对 master 分支执行 add/commit ,这个时候我们可以执行如下命令,先将当前分支中的文件储藏起来:

git stash

  执行完 git stash 命令之后,再执行 git status ,我们发现此时 master 分支已经是干净的了,此时我们可以愉快的切换到 blog 分支中去了,切换到 blog 分支之后,我们发现 master 中的修改并没有干扰到 blog 分支,当我们完成了 blog 分支中的工作之后,再回到 master 分支,此时执行如下命令可以恢复刚刚储藏的数据:

git stash apply

  上面这个命令执行完之后,master分支中的工作区中的文件就恢复了,此时执行git status就可以看到又有数据需要add/commit了。

  我们也可将工作区储藏多次,这个时候我们可以执行如下命令来查看储藏:

git stash list

git stash apply 表示恢复最近一次储藏,如果我们想恢复到之前的某一次储藏,可以加上储藏的名字,如下:

$ git stash apply stash@{1}

还有一些其他的关于储藏的命令:

1.恢复储藏并出栈
$ git stash pop

  执行效果和git stash apply一样,不同的是,这里执行完之后,会将栈顶的储藏移除。

2.删除某一个储藏
$ git stash drop stash@{2}

最后一个参数是指储藏的名字。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值