赞
踩
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
之前的文章我们讲解了Git是什么,Git的基本操作,Git和GitHub之间的关系,这些其实对于我们个人开发者来说已经够用了。但是在工作的实际生成环境下完全不够的,我们不可能什么都放在一个分支上,这样不好管理,尤其是权限的配置,不能谁都拥有全部的权限,所以会创建多个分支,开发用开发的分支,测试用测试的分支,最后上线可以使用合并到master分支。也可以开一个分支来去解决问题,修改好后再合并到主分支中。
在之前我们用树的形式描述了git版本管理的逻辑,每一个版本就是一个节点。这时这个项目只有一个分支,默认是master分支,那么Git别的分支又是什么意思呢?
以上就是关于Git分支的逻辑理解,如上图master已经拥有了5个版本,在此基础上创建了一个dev分支,这时的dev分支是拥有master的所有记录的(包括文件、版本记录等信息)。在dev分支下创建dev-dev分支,dev-dev分支是会拥有dev分支的所有记录。
git checkout -b branch_name // 创建并切换到branch_name这个分支
git branch // 查看所有分支和当前所处分支
git checkout branch_name // 切换到branch_name这个分支
git branch -d branch_name // 删除本地仓库的branch_name分支
git branch branch_name // 创建新分支
a、创建dev分支
b、查看所有分支和当前所处分支
c、切换到dev分支
d、查看dev分支的内容和版本记录
e、在dev分支下增加aaa
后提交到本地仓库。此时的内容只在dev分支可见,master就看不到了。
f、切换回master分支,查看内容和提交记录
g、切换到dev分支后创建dev-dev分支,我们发现dev-dev分支拥有dev分支的所有内容和版本记录
h、切换回master分支后虽然没有其他分支的版本记录,但是HEAD指针的引用记录还是全部可以查看到的
git merge branch_name // 将分支branch_name合并到当前分支上
a、将dev分支合并到master分支
b、查看master分支的版本记录
c、查看HEAD指针的引用记录。在记录中我们发现合并使用的是Fast-forward
,它直接将Head指针指向了a88a7df
这个版本,没有进行复制重写。
合并分支远远没有看到的这么轻松,后面肯定会遇到分支冲突等各种冲突场景,我们会专门写一篇文章来讲述这些情景。
git push --set-upstream origin branch_name // 设置本地的branch_name分支对应远程仓库的branch_name分支
git push -d origin branch_name // 删除远程仓库的branch_name分支
git pull // 将远程仓库的当前分支与本地仓库的当前分支合并
git pull origin branch_name // 将远程仓库的branch_name分支与本地仓库的当前分支合并
git branch --set-upstream-to=origin/branch_name1 branch_name2 // 将远程的branch_name1分支与本地的branch_name2分支对应
git checkout -t origin/branch_name // 将远程的branch_name分支拉取到本地
a、设置本地分支和远程分支的对应关系
b、查看GitHub的分支情况
c、在GitHub上在线修改dev-dev分支下的readme.txt文件,增加ccc内容,然后使用命令将修改拉取下来。
d、将远程仓库的dev-dev分支与本地仓库的当前分支(dev)合并
e、在远程仓库创建一个dev-dev-dev
分支,增加ddd
内容,然后将远程的dev-dev-dev
分支拉取到本地
f、从本地删除远程仓库的分支
对于远程仓库的一个请求合并等操作可以在图形界面上进行操作,较于简单则不进行演示。
此文讲了Git分支及分支合并操作,后续会遇到一些冲突的问题,我们将会再下一篇文章中进行演示解决。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。