Codinggit程序员

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

2014-11-02  本文已影响892人  AQ王浩

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

由于测试同学在使用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

上一篇下一篇

猜你喜欢

热点阅读