• git切换分支时,如何保存当前分支的修改(暂时不想提交)


    git切换分支时,如何保存当前分支的修改(暂时不想提交)

    下面是我自己的理解

    暂且将当前分支称为a分支,即将切换的分支称为b分支

    1. 若a分支修改一半,并不着急提交,且需要到b分支上修改开发时,我们可以选择git stash ,git pull 将a分支的修改暂存到堆栈区中,然后切换到b分支进行开发,然后切换到a分支继续开发,释放堆栈中的保存的文件有以下两种

      1. git stash pop 这种方法是直接将堆栈中的文件释放出来,并且删除堆栈中的文件

      2. git stash apply 这种方法是将堆栈中的东西恢复出来,但是堆栈中还保留,这种方法比较保守,但同时也比较安全。

        git stash pop和git stash apply 使用哪一种比较好呢?视情况而定

        直接使用git stash pop 属于简单粗暴,也不是不可以,大部分情况下都没事,但是如果你从b分支重新切换到a分支,在这期间,有人在a分支上更新并提交了代码并且包含你git stash 中的文件时,这个时候你再git stash pop 的时候就会很麻烦,会报错产生冲突,会让你开始合并区分,因为释放的文件是根据之前的版本修改的

        这个时候听着就很头疼,也很棘手,怎么办呢?就解决冲突呗~~

        还有个区别就是git stash list查看一下当前堆栈当中已经有的记录

        git stash pop 默认的是应用的栈顶的记录,也就是 stash@{0}

        git stash apply 可以自由选择我们想要应用的记录stash@{0},stash@{1},stash@{2}........

    2. 如果a分支修改的文件,b分支上也有且两个分支的文件源码是一样的

      ,是可以顺利切换过去的,不管是在工作树还是暂存区的直接切换过去都不会报错。

      注:这里的文件一样指的不仅仅是文件名而是包括文件里的内容,如两个分支中都有home.vue文件,若里面的代码不一样那么切换的时候也会报错

    3. 若a分支修改的文件在b分支上没有,就会有以下提示

    若你继续选择(强制)切换分支,那么就会丢弃你本地所有修改的分支。

    1. 若a分支修改的多个文件,b分支有的有,有的没有,那么切换分支的时候也会有这样的提示,如果继续checkout,那么a分支上的所有修改也将会都被丢弃。

    git stash:备份当前工作区内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前工作区内容保存到Git栈中
    git pull:拉取服务器上当前分支代码
    git stash pop:从Git栈中读取最近一次保存的内容,恢复工作区相关内容。同时,用户可能进行多次stash操作,需要保证后stash的最先被取到,所以用栈(先进后出)来管理;pop取栈顶的内容并恢复
    git stash list:显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
    git stash clear:清空Git栈

  • 相关阅读:
    linux磁盘管理
    yarn一直在跑一个用户为dr.who的application
    HBASE强制删除表
    Centos安装git2.2.1
    MySQL类型float double decimal的区别
    PHP的extension_dir设置问题
    opencart安装和使用PHPMailer
    在路上
    修改win10中linux子系统的root密码
    关于js for循环click事件
  • 原文地址:https://www.cnblogs.com/wszzj/p/16175740.html
Copyright © 2020-2023  润新知