zoukankan      html  css  js  c++  java
  • Git stash用法

    git stash用于将当前工作区的修改暂存起来,就想堆栈一样,可以随时将某一次缓存的修改再重新应用到当前工作区。正确的使用可以极大的提高工作效率。

    eg:

    1.先初始一个测试git仓

    随便一个目录,进入操作:

    $ git init

    创建一个文件:

    $ touch test

    $ git add .(add后跟的.表示“把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件”)

    $ git commit -m "先将创建的文件add"

    2.暂存当前修改内容(git stash),必须把修改的文件git add后才可以git stash

    现在test中插入文字,如下:

    $ vim test(输入i开始编辑,Esc退出编辑,:wq保存退出文本。注意输入法要在英文状态,不然不识别会闪屏

    成功后,考虑修改记录。但修改后发现不合适,想回退比较麻烦,此时git stash应用场景出现:将修改暂存起来

    3.弹出修改内容(git stash pop)

    重新编辑后的内容,不合适需要回退,可以用git stash pop命令,弹出刚才的内容(注意先用git checkout . 清空工作区)

    注意:git stash pop弹出成功后,暂存列表里面就没有了,如果当前工作区不干净,弹出时有冲突,则暂存列表会继续保留修改

    4.可以保持多个修改(针对需要保存的文件进行同样的操作)

    eg:对文本,开始第一次输入尝试,保存后录入“第二次输入尝试”,再保存进行“第三次输入尝试”

    5.查看保存的内容列表(git stash list)

    eg:保存了文本1,文本2操作。可以通过git stash list查看保存内容列表

    stash@{0}和stash@{1},需要使用git stash show stash@{X}命令来查看,其中‘X’表示列表号;

    stash@{0}对应“文本2”的修改, stash@{1}对应“文本1”的修改

    入栈的修改,其代号为0,循环命名。

    6.应用任意一次修改到当前目录(git apply stash@{x})

    如果现在又想回到“文本1”的修改,怎么办呢?在工作区干净的情况下,要使用git stash apply stash@{1}。
     注意这时不能使用git stash pop, 它将最栈顶,即stash@{0}的修改弹出来,而func1现在已经是stash@{1}了。
    虽然func1的修改已经被弹出应用到当前工作区,其修改内容还继续保留在暂存列表,并未丢弃。
      当然,我们可以使用git stash drop stash@{1}来丢掉stash@{1}

    7.保存时打上标记(git stash save)

    $ git stash save "标记文本3"
  • 相关阅读:
    iOS 新建xib文件时,最外层view的约束问题
    React native 无法弹出调试控件的问题
    从GitHub下载demo时遇到的依赖问题
    Mac 解决 Sourcetree 同步代码总需要密码的问题
    Mac 安装JRE 1.8
    正则表达式-- (.*?) 或 (.*+)
    字符串内有多个#号,每俩#号为一组,JavaScript 截取每组#号之间的字符
    Js/jQuery实时监听input输入框值变化
    Redis设置密码
    redis本机能访问 远程不能访问的问题
  • 原文地址:https://www.cnblogs.com/yangjingkang/p/9947744.html
Copyright © 2011-2022 走看看