内容简介:想要获取更多文章可以访问我的博客 -代码无止境。在开发的过程中可能会经常出现下面这种情况,我们正在开发某个功能,当前分支的内容比较乱,不太适合提交,而此时我们需要切换到其他分支上处理一些事情。这个时候该怎么办呢?难道是将修改先备份然后丢弃修改再切换到另外的分支上?答案肯定是否定的,今天我们就来介绍如何使用首先我们需要准备一个git仓库,并准备两个分支(
想要获取更多文章可以访问我的博客 -代码无止境。
在开发的过程中可能会经常出现下面这种情况,我们正在开发某个功能,当前分支的内容比较乱,不太适合提交,而此时我们需要切换到其他分支上处理一些事情。这个时候该怎么办呢?难道是将修改先备份然后丢弃修改再切换到另外的分支上?答案肯定是否定的,今天我们就来介绍如何使用 git stash
命令来完美解决这种窘境。
准备
首先我们需要准备一个git仓库,并准备两个分支( master
和 dev
):
mkdir git-test cd git-test git init touch README.md git add README.md git commit -m "第一次提交" git checkout -b dev 复制代码
使用stash命令
在上一步,我们已经切换到 dev
了,现在我们在 README.md
上随便修改一点东西来模拟凌乱的分支:
$ git status On branch dev Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: README.md no changes added to commit (use "git add" and/or "git commit -a") 复制代码
现在假如我们急需切换到 master
分支上处理一些事情,所以我们需要使用 git stash
来藏储 dev
分支上的修改。
git stash 复制代码
然后我们再执行一下git status来看下dev上的情况:
$ git status On branch dev nothing to commit, working tree clean 复制代码
我们会发现 dev
分支变干干净净了,因为刚刚的修改已经被藏储了。那么或许你会问,我们应该怎么查看有哪些藏储呢?当我们在 master
分支上处理完事情后回到 dev
分支又该如何恢复我们藏储的内容呢?首先我们执行 git stash list
我们查看所有的藏储记录:
$ git stash list stash@{0}: WIP on dev: 9ad7304 第一次提交 复制代码
如何恢复呢?可以使用 git stash pop
恢复第一条存储记录,也可以使用 git stash apply stash@{n}
命令来恢复指定的存储记录。
$ git stash apply stash@{0} On branch dev Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: README.md 复制代码
然后我们就会发现刚刚的修改恢复回来了。但是此时我们再次执行 git stash list
会发现刚刚恢复的藏储记录还存在,我们需要执行 git stash drop stash@{n}
删掉它。
$ git stash drop stash@{0} Dropped stash@{0} (8c0b9fa5bc217c7876ab825147ee76712364887e) 复制代码
再执行 git stash list
的时候就会发现这条藏储被删除了,当然如果我们恢复的是栈顶的藏储记录的话我建议直接使用 git stash pop
命令,因为在恢复的同时会自动删除掉栈顶的藏储记录。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。