git(3)分支与合并
Git分支git分支与合并介绍:git分支,什么是分支呢?字面意思,就是在同一个项目上做修改时有不同的选择,这就叫分支,而选择不同分支,就会有不同的结果,就想打游戏中多个不同的结局一样.(1)举个例子:开发某个网站。为实现某个新的需求,创建一个分支。在这个分支上开展工作,然后,别的人也有不同的分支,你们的任务不一样,修改或者说构建的内容不同,这就是分支.(注意:简单来讲就是同一个项目不同的任务,把
Git分支
git分支与合并介绍:
git分支,什么是分支呢?字面意思,就是在同一个项目上做修改时有不同的选择,这就叫分支,而选择不同分支,就会有不同的结果,就想打游戏中多个不同的结局一样.
(1)举个例子:
开发某个网站。
为实现某个新的需求,创建一个分支。
在这个分支上开展工作,然后,别的人也有不同的分支,你们的任务不一样,修改或者说构建的内容不同,这就是分支.
(注意:简单来讲就是同一个项目不同的任务,把项目原本的形态clone下来,然后改不同的地方,就叫做分支)
分支的好处:
同一个项目可以同时进行多个功能的开发,加快开发的速度与效率
(2)git合并
假设此时,突然说有个很严重的问题需要紧急修补那么可以按照下面的方式处理:
返回到原先已经发布到生产服务器上的分支。
为这次紧急修补建立一个新分支,并在其中修复问题。
通过测试后,回到生产服务器所在的分支,将修补分支合并进来,然后再推送到生产服务器上。
切换到之前实现新需求的分支,继续工作。
(注意:就是把新的分支合并到老的分支上,改变老的分支,这就叫合并)
合并的好处
在多个分支开发完成后,合并到同一个上面,实现功能互补,加快开发进度
分支流程:
步骤:
(1)创建git分支
既然有分支,那么我们至少是有两个以上的分支,这时候就需要我们来创建一个分支了,可以使用git branch 分支名
来创建
(2)查看分支
并没有明显变化对吧,那我们就需要来查看一下是不是创建了新的分支,我们可以通过git branch -v
来查看
可以看到我们确实是新添加了一个分支.
(注意:我们在创建一个新分支后,最好通过git branch -v 来查看是不是成功的添加了新分支)
(3)切换分支
既然已经添加了新的分支,那我们就好切换的新分支进行操作了,可以通过git checkout 分支名
来切换到相应分支
可以看到我们成功切换到xin的分支上了
切换成功后,我们的master 已经变成 xin 这就代表我们成功切换到xin的分支了
(注意:切换成功后,可以使用git branch -v 来看指针指向是否改变到指定分支)
(4)修改分支
我们以及切换到了新的分支,那么为我们就要进行自己的分支切换,那么就不得不来修改分支了,我们可以通过vim 文件名
来修改
(5)具体修改
可以看到已经可以修改了,修改完成后可以通过git status
来查看内容,然后我们就需要重新上传到本地库了通过一系列操作
(注意:如果不懂怎么上传本地库的可以看我上期git(2))
修改完成后,通过cat 文件名
来查看改没改
(6)合并分支(正常)
在我们xin分支改变完成后,我们可以回到master分支查看一下master的分支内容改变没有
很明显,并没有,那么我们想要让marster分支的内容和xin分支的内容一样的话.
就需要合并分支,把master分支和xin分支合并到一起.可以通过git merge 分支名
把指定的分支合并到当前分支上
可以看到,我们已经合并成功了
(注意:想合并到master分支的话,就需要在master分支上进行操作,把xin分支合并到master上)
(7)查看是否成功合并
依旧是通过cat 文件名
来查看是不是成功合并修改了
可以看到确实是合并成功了,master的分支内容已经被xin分支给合并替换了
(注意:合并分支有成功就有失败,我们如果两个分支都对一个文件进行修改,那么就会产生冲突)
(8)合并分支(冲突)
有成功合并就有失败合并,那么,如果我们两个分支同时修改一个文件,那就会产生冲突,我们就需要手动就行修改,那我们就来试一试把
首先对master分支进行修改
依旧是通过 vim 文件名 进行修改的,修改完成后还要进行上传暂存区,上传到本地库来进行保存和修改
然后切换成xin分支进行同样的操作
这时候切回会master分支,合并到master分支上
他会告诉我们,自动合并失败,hello.txt文件合并冲突而且我们后面分支状态也发生了改变,多了 |MERGING
代表合并中,这时候我们打开vim 文件名
来看看内容是怎么样的
可以看出来,我们修改的两个内容都在上面,他不会自动合并了,而是通过特殊符号隔开,这时候我们就需要手动去修改了
(注意:我们在手动修改完成后,还需要再次上传到暂存区和保存在本地)
特别注意!!!
**在上传本地的时候 我们的 git commit -m "不能带有文件名" 文件名
**后面的文件名不能带,也就是变成了 git commit -m "qx commit"
这样的
流程都在图上面了,如果带文件名的效果 也显示在上面了.
最后我们已经成功了,可以看到 后面的|merging
已经消失了
可以通过cat 文件名
来确认
master已经被我们手动合并完毕了
(注意:我们修改的只是master,因为是合并master,我们xin分支的内容并没有改变)
我们来看下xin分支的内容改变了吗
可以看到xin分支并没有改变.
总结:
为了提高开发效率,同一个项目可以同时进行多个功能的开发,加快开发的速度与效率,我们就有了分支和合并,它们的本质是为了提高开发效率
而分支
我们可以通过git branch -v
来查看分支
通过 git branch 分支名
来创建分支
通过 git checkout 分支名
来切换分支
然后修改分支 还是vim 文件名
来修改
合并
修改完分支后,需要合并分支
我们可以通过git merge 分支名
来合并分支,而合并的时候又分为成功的和冲突的
冲突的合并,需要我们去手动的修改,修改完成后,改变的也只是master的分支,而xin的分支并不变化(这是在master上合并xin的情况下)
总结注意点
- 简单来讲就是同一个项目不同的任务,把项目原本的形态clone下来,然后改不同的地方,就叫做分支
- 把新的分支合并到老的分支上,改变老的分支,这就叫合并
- 我们在创建一个新分支后,最好通过git branch -v 来查看是不是成功的添加了新分支
- 我们在创建一个新分支后,最好通过git branch -v 来查看是不是成功的添加了新分支
- 切换成功后,可以使用git branch -v 来看指针指向是否改变到指定分支
- 如果不懂怎么上传本地库的可以看我上期git2
- 想合并到master分支的话,就需要在master分支上进行操作,把xin分支合并到master上
- 合并分支有成功就有失败,我们如果两个分支都对一个文件进行修改,那么就会产生冲突
- 我们在手动修改完成后,还需要再次上传到暂存区和保存在本地
- 在手动修改完合并分支后,在上传本地的时候 我们的
git commit -m "不能带有文件名" 文件名
**后面的文件名不能带,也就是变成了git commit -m "qx commit"
这样的 - 我们修改的只是master,因为是合并master,我们xin分支的内容并没有改变
好了,我们的git就讲解到这里,继续往下就是github了,我们下期再见,拜拜
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)