Git分支简介
Git分支是由指针管理起来的,所以创建、切换、合并、删除分支都非常快,非常适合大型项目的开发。
在分支上做开发,调试好了后再合并到主分支。那么每个人开发模块式都不会影响到别人。
1、创建、切换分支
创建并切换分支:git checkout -b <分支名称>
这条命令和下面两条命令效果相同。
创建分支:git branch <分支名称>
切换分支:git checkout <分支名称>
想要切换到master运行命令,即可
git checkout master
2、查看分支
git branch
3、合并分支
git checkout master
先切换到master分支
git merge fenzhi
再将fenzhi分支的代码合并到master(在merge合并分支的时候,代码会有冲突,需要自己去解决这些冲突)
我们这边写一个demo
本地建立一个readme.txt里面内容为:
目前是master主分支,我们新建并切换到分支 git checkout -b fenzhi
然后将readme.txt 改变内容为
接下来我们运行 git merge fenzhi
看效果如下:我们可以看到分支内容与主分支合并了
4、删除与恢复分支
当分支已经合并到主分支,并且不再需要接着该分支继续开发(后期也可以从主分支分出来),可以删除该分支。
git branch -d <分支名称>
误删分支需要恢复
为了使分支图更加简明,可以加上一些参数。
git log --graph --pretty=oneline --abbrev-commit
使用git reflog 查出分支的提交号。
git branch <新的分支名称> <提交号(就是reflog前面的四位数)>
即创建提交号历史版本的一个分支,分支名称随意。可以看到我们删除的分支的内容又回来了
5、重命名分支
git branch –m 当前分支名 新的分支名
多人协作
当你从远程库克隆时候,
git clone git://github.com/wangwensha/git.git
也可以通过http 协议来访问:
git clone https://github.com/wangwensha/git.git
实际上Git自动把本地的master分支和远程的master分支对应起来了,并且远程库的默认名称是origin。
要查看远程库的信息 使用 git remote
要查看远程库的详细信息 使用 git remote –v
1、推送
git push origin master
我们减肥主分支的本地的成功的推送到了远程仓库上去,那么其他分支如何推送到远程服务器上去呢?不要着慌
我们依旧使用 git push origin 分支名称
比如我们分支叫fenzhi
git push origin fenzhi
一般呢我们先将分支的内容合并到主分支中,然后将主分支的内容提交到远程仓库中。
2、抓取fetch
多人协作时,大家都会往master分支上推送各自的修改。现在我们可以模拟另外一个同事,可以在另一台电脑上(注意要把SSH key添加到github上)或者同一台电脑上另外一个目录克隆,新建一个目录名字叫testgit2
假如小伙伴要在dev分支上开发,就必须创建远程origin的dev分支到本地,于是他用这个命令创建本地dev分支,并把分支推送到远程仓库中去了,(git checkout -b dev //创建并切换到分支
git push origin dev //将分支推送到远程服务器),此时巧合,你也对文件做了处理=,并且要推送 git pull 这是就会显示失败,git会提示我们先将仓库中的git pull最新提交的抓取下来,然后再本地合并,解决冲突,再提交
git pull之前先指定本地dev分支与远程origin/dev分支的链接,再pull:
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令
git branch --set-upstream-to <branch-name> origin/<branch-name>
git pull成功,但是合并有冲突,需要手动解决,解决的方法和分支管理中的解决冲突完全一样。解决后,提交,再git push origin dev
在此,小编要总结一下业务流程:往往多人合作就会产生比较多的问题,我们要及时的提交 及时的更新,才会减少问题的产生,彼此之间逐渐形成一种默契度!
当你推送文件时,git push origin <推送的分支name>,
如果出现推送失败,远程仓库比你本地的新,你就要先用git pull试图合并。
如果合并有冲突,先解决冲突,并在本地提交。没有冲突后,再push提交代码
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>
多人协作,基本上就会常常遇到这些问题,熟悉多了,操作多了,就很简单了,一眼就知道什么问题。大家不必觉得难以理解,熟能生巧嘛!
参考文献:git分支(存在意义和使用方法)链接在此
小编不易,如有收获,微信赏小编喝杯娃哈哈
单身狗的 葵花宝典,撩妹必备 敬请关注!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。