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 # 查看所有分支情况

 git branch -a命令可以查看所有分支,现在我们HEAD指针便指向dev分支,大家可以在上图中看到dev分支上有个*号。

合并分支

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、合并分支(快速合并)

  • 现在,我们把dev分支的工作成果合并到master分支上,如下图:

 

大家注意到上面的 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为要提交代码的分支名称)

测试结果

 

具体分支讲解,请参考博客

 

致力于记录学习过程中的笔记,希望大家有所帮助(*^▽^*)!
原文地址:https://www.cnblogs.com/zxhbk/p/13034535.html