【转】Git使用教程之BUG分支

1.bug分支git

     在开发中,会常常碰到bug问题,那么有了bug就须要修复,在Git中,分支是很强大的,每一个bug均可以经过一个临时分支来修复,修复完成后,合并分支,而后将临时的分支删除掉。github

好比我在开发中接到一个404 bug时候,咱们能够建立一个404分支来修复它,可是,当前的dev分支上的工做尚未提交。好比以下:app

 

   并非我不想提交,而是工做进行到一半时候,咱们还没法提交,好比我这个分支bug要2天完成,可是我issue-404 bug须要5个小时内完成。怎么办呢?还好,Git还提供了一个stash功能,能够把当前工做现场 ”隐藏起来”,等之后恢复现场后继续工做。以下:3d

  

   因此如今我能够经过建立issue-404分支来修复bug了。blog

首先咱们要肯定在那个分支上修复bug,好比我如今是在主分支master上来修复的,如今我要在master分支上建立一个临时分支,演示以下:开发

 

修复完成后,切换到master分支上,并完成合并,最后删除issue-404分支。演示以下:rem

如今,咱们回到dev分支上干活了。同步

工做区是干净的,那么咱们工做现场去哪里呢?咱们可使用命令 git stash list来查看下。以下:it

工做现场还在,Git把stash内容存在某个地方了,可是须要恢复一下,可使用以下2个方法:ast

  1. git stash apply恢复,恢复后,stash内容并不删除,你须要使用命令git stash drop来删除。
  2. 另外一种方式是使用git stash pop,恢复的同时把stash内容也删除了。

         演示以下

八:多人协做。

当你从远程库克隆时候,实际上Git自动把本地的master分支和远程的master分支对应起来了,而且远程库的默认名称是origin。

  1. 要查看远程库的信息 使用 git remote
  2. 要查看远程库的详细信息 使用 git remote –v

以下演示:

 

一:推送分支:

      推送分支就是把该分支上全部本地提交到远程库中,推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上:

      使用命令 git push origin master

好比我如今的github上的readme.txt代码以下:

本地的readme.txt代码以下:

 

如今我想把本地更新的readme.txt代码推送到远程库中,使用命令以下:

咱们能够看到如上,推送成功,咱们能够继续来截图github上的readme.txt内容 以下:

能够看到 推送成功了,若是咱们如今要推送到其余分支,好比dev分支上,咱们仍是那个命令 git push origin dev

那么通常状况下,那些分支要推送呢?

  1. master分支是主分支,所以要时刻与远程同步。
  2. 一些修复bug分支不须要推送到远程去,能够先合并到主分支上,而后把主分支master推送到远程去。

二:抓取分支:

多人协做时,你们都会往master分支上推送各自的修改。如今咱们能够模拟另一个同事,能够在另外一台电脑上(注意要把SSH key添加到github上)或者同一台电脑上另一个目录克隆,新建一个目录名字叫testgit2

可是我首先要把dev分支也要推送到远程去,以下

接着进入testgit2目录,进行克隆远程的库到本地来,以下:

 

如今目录下生成有以下所示:

如今咱们的小伙伴要在dev分支上作开发,就必须把远程的origin的dev分支到本地来,因而可使用命令建立本地dev分支:git checkout  –b dev origin/dev

如今小伙伴们就能够在dev分支上作开发了,开发完成后把dev分支推送到远程库时。

以下:

小伙伴们已经向origin/dev分支上推送了提交,而我在个人目录文件下也对一样的文件同个地方做了修改,也试图推送到远程库时,以下:

由上面可知:推送失败,由于个人小伙伴最新提交的和我试图推送的有冲突,解决的办法也很简单,上面已经提示咱们,先用git pull把最新的提交从origin/dev抓下来,而后在本地合并,解决冲突,再推送。

git pull也失败了,缘由是没有指定本地dev分支与远程origin/dev分支的连接,根据提示,设置dev和origin/dev的连接:以下:

这回git pull成功,可是合并有冲突,须要手动解决,解决的方法和分支管理中的 解决冲突彻底同样。解决后,提交,再push:

咱们能够先来看看readme.txt内容了。

如今手动已经解决完了,我接在须要再提交,再push到远程库里面去。以下所示:

所以:多人协做工做模式通常是这样的:

    1. 首先,能够试图用git push origin branch-name推送本身的修改.
    2. 若是推送失败,则由于远程分支比你的本地更新早,须要先用git pull试图合并。
    3. 若是合并有冲突,则须要解决冲突,并在本地提交。再用git push origin branch-name推送。
相关文章
相关标签/搜索