美文网首页GitGit使用
Git使用小技巧之Stash命令藏储零乱分支

Git使用小技巧之Stash命令藏储零乱分支

作者: 代码无止境 | 来源:发表于2019-06-26 20:47 被阅读6次

    想要获取更多文章可以访问我的博客 - 代码无止境

    在开发的过程中可能会经常出现下面这种情况,我们正在开发某个功能,当前分支的内容比较乱,不太适合提交,而此时我们需要切换到其他分支上处理一些事情。这个时候该怎么办呢?难道是将修改先备份然后丢弃修改再切换到另外的分支上?答案肯定是否定的,今天我们就来介绍如何使用git stash命令来完美解决这种窘境。

    准备

    首先我们需要准备一个git仓库,并准备两个分支(masterdev):

    
    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命令,因为在恢复的同时会自动删除掉栈顶的藏储记录。

    相关文章

      网友评论

        本文标题:Git使用小技巧之Stash命令藏储零乱分支

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