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
演示以下
八:多人协做。
当你从远程库克隆时候,实际上Git自动把本地的master分支和远程的master分支对应起来了,而且远程库的默认名称是origin。
以下演示:
一:推送分支:
推送分支就是把该分支上全部本地提交到远程库中,推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上:
使用命令 git push origin master
好比我如今的github上的readme.txt代码以下:
本地的readme.txt代码以下:
如今我想把本地更新的readme.txt代码推送到远程库中,使用命令以下:
咱们能够看到如上,推送成功,咱们能够继续来截图github上的readme.txt内容 以下:
能够看到 推送成功了,若是咱们如今要推送到其余分支,好比dev分支上,咱们仍是那个命令 git push origin dev
那么通常状况下,那些分支要推送呢?
二:抓取分支:
多人协做时,你们都会往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到远程库里面去。以下所示:
所以:多人协做工做模式通常是这样的: