上篇文章我们学习了Git教程——git使用,这篇文章我们学习Git教程——Git分支。
分支
在开发过程中,需要同时进行多个开发任务,这时我们可以使用Git分支功能,为每个任务创建单独的分支。使用分支把自己开发任务从开发主线上分离开来,开发自己分支时,不会影响主线分支的运行。
例如:开发音乐软件,如下图所示:
音乐软件1.0版本上线了,现需要增加音乐互动小游戏,显然直接在原有的代码上开发是不可取的,那么这就可以使用Git分支功能,如下图所示:
这样保证了原有的代码不被破坏。
分支的好处:
-
同时并行开发多个功能,提高开发效率; -
各个分支在开发过程中,如果某个分支开发失败,不会对其他分支有任何影响; -
失败的分支删除重新开始即可。
设置用户签名
由于是新安装的Git,所以需要设置用户签名,已经设置用户签名的可以跳过这一节,
设置用户签名基本语法如下:
git config --global user.name 用户名
git config --global user.email 邮箱
示例代码如下:
git config --global user.name LIN
git config --global user.email 123@qq.com
如下图所示:
注意:邮箱不一定需要真实的邮箱,因为Git不会去验证邮箱。
查看用户签名
设置好用户签名后,我们可以在C盘 –> 用户 –> 用户文件夹中的.gitconfig查看,如下图所示:
这里我的用户文件夹为LIN,.gitconfig的内容如下:
查看分支
查看分支基本语法如下:
git branch -v # 查看分支
git branch -a # 查看所有分支,包括远程仓库分支
如下图所示:
由于我们没有创建分支,所以只显示了主线分支。
创建分支
创建分支基本语法如下:
git branch 分支名
示例代码如下:
git branch myBranch # 创建名为myBranch分支
git branch -v # 查看分支
如下图所示:
切换分支
切换分支语法如下:
git checkout 分支名
示例代码如下:
git checkout myBranch # 切换到myBranch分支
如下图所示:
切换分支后,我们对readme.txt文件进行修改并提交到仓库,示例代码如下:
git status # 查看状态
git add readme.txt # 提交readme.txt文件到暂存区
git status # 查看状态
git commit -m '这是分支提交的' # 提交文件到仓库
git status # 查看状态
git relog # 查看日志
如下图所示:
这样就成功切换分支修改readme.txt文件并提交到仓库了,当我们切换到master分支时,readme.txt文件会回到原来的样子。
合并分支
合并分支语法如下:
git merge 分支名
示例代码如下:
git merge myBranch
其作用是将myBranch分支合并到当前分支,如下图所示:
这样就成功合并myBranch分支到master分支中了。
合并冲突
合并分支时,可能两个分支在同一个文件有完全不同的修改,这时需要人为决定修改的内容。这里我们在myBranch分支和master分支中修改readme.txt文件,如下图所示:
接下来我们合并master分支和myBranch分支,如下图所示:
这时我们看到合并readme.txt文件发生了冲突,并且master旁边多了|MERGING,这时我们查看Git状态,如下图所示:
可以看到readme.txt发生了两次修改,这时git不能决定如何合并readme,txt文件,那我们进入readme.txt文件,如下图所示:
可以看到Git通过<<<<、=====、>>>>帮我们标记了各分支做了那些修改,这时我们通过自己的需求来保留需要的内容,最后通过如下图代码将文件提交到仓库即可:
git add readme.txt # 提交暂存区
git commit -m '冲突提交' # 提交仓库
注意:当我们对被标记的文件做出修改时,只会修改当前分支的文件内容,而另一分支的文件内容不会变化。
好了,Git教程——Git分支就讲到这里了,下篇文章我们学习Git教程——GitHub、团队内协作、跨团队协作。
– END –
原文始发于微信公众号(白巧克力LIN):Git教程——Git分支
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/222410.html