美文网首页Codinggit程序员
妈妈再也不用担心我切不了分支了

妈妈再也不用担心我切不了分支了

作者: AQ王浩 | 来源:发表于2014-11-02 16:06 被阅读892次

    现在前面的话
    从十月份上班之后,手指就特别不灵活,由于工单赶得比较紧,所以每天敲代码,就特别多,由于操作习惯和姿势的问题,导致左右手同时“残废”,左手大拇指,小指,右手大拇指都有强烈的疼痛感。这样一下来,就导致敲键盘困难,然后输入困难,最后的结果是,工作效率下降,产出低......
    所以作为一个合格的软件工程师,必须要有敏捷的头脑,还有有强劲的体魄。
    废话不多说,进入今天的正题。

    由于测试同学在使用git方面出现了或多或少的问题,导致测试不流畅,测试时间延期。为了解决这些看似不大,但是非常关键的问题,如何正确的,切换分支,特意做以下总结和分析,若有不周到地方,请指正。

    宣传语

    历经两个半月的准备,三次大改版,十七次小改版。le1024终于要和大家见面了。

    le1024每天推荐1~3段,有趣、有爱、有故事的视频。

    为您工作、学习、生活之余增加一点快乐的感觉。

    1、神马是Git

    Git是目前世界上最先进的分布式版本控制系统(没有之一)

    Git的特点,简单来说:高端大气上档次

    版本控制系统是神马东西?
    想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把之前的文件“另存为”重命名为一个新的word文件,再接着该,改到一定程度,再另存为一个新文件,这样一直改下去,最后你的Word就变成了下面这个样子:

    so, 每个人都从这个阶段走过,改论文的痛苦,谁该谁知道。
    那么,Git就是做这件事情的,它会保留你每次修改,并且可以自由前进(重新编辑),后退(查看旧版本)的操作。让这种文档编辑,变得so easy。

    2、如何安装Git

    1、Ubuntu

    sudo apt-get install git-core
    

    sudo apt-get install git
    

    2、Mac OS

    1. 首先确保安装有Homebrew, 倘若没有安装,执行下面命令

         ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
      
    2. 使用Homebrew 安装软件

        brew install git
      

    Git安装完之后,需要配置

    git config --global user.name "Your Name"
    git config --global user.email "email@example.com"
    

    这个配置,是机器的区分号,也是每一个代码提交者的代号。

    3、Git三棵树

    你的本地仓库由 git 维护的三棵“树”组成。
    第一个是你的工作目录,它持有实际文件;
    第二个是 暂存区(Index),它像个缓存区域,临时保存你的改动;
    最后是 HEAD,它指向你最后一次提交的结果

    4、如何切分支

    1) 如果 暂存区(Index),没有任何修改的情况下,直接

        git checkout 目标分支xxxx
    

    2) 如果 暂存区(Index),新增加了文件
    两个分支 test1102master,如果test1102新增加的文件,在 暂存区,并没有进行commit操作,同上

        git checkout 目标分支xxxx
    

    这样不仅可以切换分支,并且还可以把新创建的文件,带到master上,并且还在 暂存区

    3) 如果 暂存区(Index),不仅有新增加的文件,并且还有新修改的文件,执行上述命令是切不了分支的,你会看到如下的提示:

    有如下几种解决方式:
    1、暴力、鲁莽型

    优点:快速,简洁。 缺点:暂存区 修改文件不会保存。

    2、温柔、周到型
    温柔型,保存了暂存区中的所有修改,并且安全把所修改内容带到目标分支。具体操作如下
    stash之前

    stash ing,进行stash操作时,需要注意保持 stash堆栈的干净,整洁。


    切换到目标分支,然后stash pop 出来

    遇到这种情况,就要谨慎操作。因为有代码冲突,明显标志 both modified 所以先要解决冲突,为了不给开发同学添加额外的负担,我们自己动手。 其实在控制台中已经有充分的提示
        git add <file>  ... 不推荐
        git reset HEAD <file> ... 可以推荐,安全的
    

    我使用 git reset HEAD ., 最后的结果如下。

    git stash作用:储藏可以获取你工作目录的中间状态——也就是你修改过的被追踪的文件和暂存的变更——并将它保存到一个未完结变更的堆栈中,随时可以重新应用。参考这里

    优点:保存完整的修改记录。 缺点: 操作麻烦,容易出错。

    3、破坏型

        git add .
        git commit -m "balabala..."
        git checkout 目标分支xxxx
    

    强烈不推荐这种,做法。这样做危险系数很大,如果不小心做了push操作,开发很生气,后果很严重!!!

    4、诡异型

    1. lock 文件,切换不了分支

    解决办法,找到这个文件,使用 rm -rf xxxx 删掉他即可。

    1. 内存不足,切换不了分支

    解决办法,只能让运维删除一些其他文件。

    4、Git 有用的命令

    1、git gc


    具体参考 git gc
    优点:可以使得切换分支,变得快一些。

    2、git branch | grep 201408 | xargs git branch -D

    参考这里
    批量删除分支之前

    执行命令之后

    删除分支之后,不会影响开发的代码。

    5、注意

    只要不进行任何 git add ...git push ... 就不会印象开发的分支,不会对他们的代码造成影响。

    参考:
    http://rogerdudler.github.io/git-guide/index.zh.html
    http://www.cnblogs.com/renkangke/archive/2013/05/08/3067462.html
    http://scriptogr.am/pison/post/git
    http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

    相关文章

      网友评论

      本文标题:妈妈再也不用担心我切不了分支了

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