7、Gitee的分支操作
分支的理解
我们先说一个简单的案例,团队开发一个项目时,A同事想要增加一个新的功能,假设需要一周完成,但是A同时写了其中的30%,先提交到了主分支,其他人就无法提交自己改的,因为其他人提交上去的话,就被覆盖了,所以需要等到A同事写完才能提交上去,但是大家又看不到他的进度,也不能继续干活,这怎么办呢?
需要就出现了分支管理的办法,A同事需要新增功能的话,就创建一个属于他的分支,比如dev,A同事只需要在dev分支上干活就好了,也不会影响到master主分支,那么所有人都可以正常工作。
分支合并
假设自己的A同事,现在需要增加功能,那么就创建一个dev分支,并将代码上传到dev分支上。
如下图所示,我们创建了dev分支,但是HEAD指针还是指向了master主分支
git checkout命令加上-b参数表示创建并切换分支上。
git checkout -b dev
切换分支
要通过dev分支提交并pull,所以需要切换到dev分支上
git checkout dev
git branch -a # 查看所有分支情况
合并分支
1、创建一个temp.txt文件,通过master提交并push到远程仓库
2、切换到dev分支,修改temp.txt内容并提交
-
该项目有一个测试文件 temp.txt,我们修改它的内容,并通过dev分支提交一下。
vim temp.txt cat temp.txt git add temp.txt git commit -m "dev commit"
3、切换回master分支,查看temp.txt文件是否有修改
git checkout master cat temp.txt
大家可以看到我们刚才增加的一行内容不见了,嘿嘿。因为那个提交是在dev分支上,而master分支没有变化。好了,下面我们来演示一下合并分支。
4、合并分支(快速合并)
大家注意到上面的 Fast-forward 信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度 非常快。当然,也不是每次合并都能Fast-forward,我们后面会将其他方式的合并。合并完成后,就可以放心地删除dev分支了。
分支删除
下面我们来演示一下删除分支,如下图:
git branch -d dev # 删除dev分支
git branch -a # 查看所有分支
小结
大家在实际操作中可以发现在我们创建、合并、删除分支的速度非常快吧,这和直接在master分支上工作效果是一样的,但过程更安全,更可靠。下面我们来简单的总结一下:
-
查看分支 git branch -a
-
创建分支 git branch name
-
切换分支 git checkout name
-
创建并切换 git checkout -b name
-
合并某分支到当前分支 git merge name
-
删除分支 git branch -d name
分支合并冲突
1)下面我们来演示一下不同分支修改同一个文件产生冲突问题,下面我们来创建一个新的分支,继续开发新功能:
git checkout -b new1 vim temp.txt cat temp.txt git add temp.txt git commit -m "new1 修改"
2)现在我们将分支切换到master分支上修改temp.txt内容并提交,如下图:
git checkout master vim temp.txt cat temp.txt git add temp.txt git commit -m "master 修改"
3、快速合并及解决冲突
这种情况下,Git无法执行“快速合并”,只能试图把各自的修改合并起来,但这种合并就可能会有冲突,如下图:
-
并且后面的分支显示变成了 (master|MERGING)
果然冲突了,Git告诉我们temp.txt文件存在冲突,必须手动解决冲突后再提交。下面我们用git status查看一下状态:
我们发现temp.txt的内容,合并了new1分支和master主分支修改过的信息
所以这个时候就需要团队的人员进行商讨,要保留谁的
-
保留了new1分支的内容,并重新提交了
好了,到这我们的分支合并冲突就讲解完成了,下面我们来删除分支。
最后,我们可以用 git log --graph --pretty=oneline --abbrev-commit 命令,查看一下分支合并。如下图:
分支提交
(1)新建分支
git branch xxx (xxx填写你的分支名称)
(2)查看所有分支
git branch -a
(3)切换到某一分支
git checkout xxx (xxx填写要切换的分支名称)
(4)添加修改代码到缓存(注意最后的"."前面有个空格
git add .
(5)添加提交代码的备注
git commit -m "xxx" (xxx为本次提交代码的备注)
(6)提交代码到指定分支
git push origin xxx (xxx为要提交代码的分支名称)
测试结果
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· DeepSeek智能编程
· 精选4款基于.NET开源、功能强大的通讯调试工具
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?