笔记四:git分支

笔记四:git分支一:学习内容git分支特性git分支操作-查看分支git分支操作-创建分支git分支操作-切换和修改分支git分支操作-分支合并git分支操作-代码合并冲突解决二:git分支特性1.什么是分支?在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用

大家好,欢迎来到IT知识分享网。

一:学习内容

  • git分支特性
  • git分支操作-查看分支
  • git分支操作-创建分支
  • git分支操作-切换和修改分支
  • git分支操作-分支合并
  • git分支操作-代码合并冲突解决

 

二:git分支特性

1.什么是分支?

在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。

使用分支,程序员就可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。

可以简单理解为分支即为副本,一个分支就是一个单独的副本(分支的底层其实也是指针的引用)。

 

master、hot-fix等分支其实都是指向具体版本记录的指针。当前所在的分支,其实是由HEAD决定的,所以创建分支的本质就是多创建一个指针。【head如何指向master,那么我们现在就在master分支上,head如果指向hot-fix,那么我们现在就在hot-fix分支上。】所以切换分支的本质就是移动HEAD指针。

 

2.分支的好处

可以同时推进多个功能开发,提高开发效率。
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

 

三:git分支操作

1.命令汇总

1 git branch 分支名:创建分支
2 git branch -v:查看分支
3 git checkout 分支名:切换分支
4 git merge 分支名:把指定的分支合并到当前分支上

 

2.查看分支

1 #查看分支
2 git branch -v

命令执行结果如下:

笔记四:git分支

 

3.创建分支

1 #创建一个分支,名为hot-fix,它会自动拷贝master分支指针当前指向的版本的内容
2 git branch hot-fix
3 
4 #再次查看分支,此时发现有2个分支了
5 git branch -v

命令执行结果如下:

笔记四:git分支

 

4.切换和修改分支

 1 #当前在master分支上,修改hot-fix分支内容,则需要切换分支
 2 git checkout hot-fix
 3 
 4 #再次查看分支,此时发现*号指向了hot-fix,说明分支已经切换到hot-fix分支上了
 5 git branch -v
 6 
 7 #修改hot-fix分支上的内容
 8 vim hello.txt
 9 git status
10 git add hello.txt
11 git commit -m "hot-fix first commit" hello.txt
12 
13 #在hot-fix分支上查看版本精简信息
14 git reflog

命令执行结果如下:

从master分支切换到hot-fix分支:
笔记四:git分支

 

修改hot-fix分支上的内容并提交本地库:
笔记四:git分支

笔记四:git分支

 

查看hot-fix分支上版本精简信息:下方截图从最后一行往上读便是版本经历过程
①8b94833 HEAD@{7}: commit (initial): first commit:在master分支上,第一次提交,版本号为8b94833
②dbb4e24 HEAD@{6}: commit: second commit:在master分支上,第二次提交,版本号为dbb4e24
③f5ad1d9 (master) HEAD@{5}: commit: third commit:在master分支上,第三次提交,版本号为f5ad1d9

④dbb4e24 HEAD@{4}: reset: moving to dbb4e24:在master分支上,从第三次版本穿梭到第二次版本
⑤8b94833 HEAD@{3}: reset: moving to 8b94833:在master分支上,从第二次版本穿梭到第一次版本
⑥f5ad1d9 (master) HEAD@{2}: reset: moving to f5ad1d9:在master分支上,从第一次版本穿梭到第三次版本

⑦f5ad1d9 (master) HEAD@{1}: checkout: moving from master to hot-fix:从master分支切换到hot-fix分支

⑧d33c235 (HEAD -> hot-fix) HEAD@{0}: commit: hot-fix first commit:在hot-fix分支上,第一次提交,版本号为d33c235
笔记四:git分支

 

5.合并分支-正常合并

1 #将hot-fix分支上的当前指针指向的版本,合并到master分支上
2 #首先需要切换到master分支上
3 git checkout master
4 
5 #然后合并分支
6 git merge hot-fix

命令执行结果如下

从hot-fix分支切换到master分支上:
笔记四:git分支

合并分支:
笔记四:git分支

 

👉说明:已知:
master分支:
8b94833:first commit
dbb4e24:second commit
f5ad1d9:third commit

hot-fix分支:
d33c235:hot-fix first commit
aacf318:hot-fix second commit

test分支:
51c56ed:test分支第1次提交
4e37885:test分支第2次提交

注意:这里合并并不是合并该分支的最新版本,而是该分支当前指针指向哪个版本就合并哪个版本。
如:test分支当前指针指向版本为第一次提交的51c56ed,然后切换到master分支,合并test分支,则会将test分支的第一次提交的51c56ed版本覆盖掉master分支指针指向的当前版本内容。

 

6.合并分支-产生冲突

>产生冲突的原因:合并分支时,两个分支在同一个文件的相同区域(行、段落)有两套完全不同的修改。git无法决定使用哪一个,必须人为决定新代码内容。

>注意:这里的修改是指已经存在子分支了,在对master和子分支分别修改

 1 #已存在master和hot-fix两个分支
 2 #先对master分支进行修改,对hello.txt最后一行加上master gai,然后add,最后commit
 3 git checkout master
 4 vim hello.txt
 5 git add hello.txt
 6 git commit -m "master gai" hello.txt
 7 
 8 
 9 #再对hot-fix分支进行修改,对hello.txt最后一行加上hot-fix gai,然后add,最后commit
10 git checkout hot-fix
11 vim hello.txt
12 git add hello.txt
13 git commit -m "hot-fix gai" hello.txt
14 
15 
16 #切回master,将hot-fix合并到master上,会出现合并冲突
17 git merge hot-fix

命令执行结果如下:

笔记四:git分支

笔记四:git分支

 

7.合并分支-解决冲突

1 #直接在master分支上,手动修改冲突,删除特殊字符和不想要的代码,留下你想要的代码
2 vim hello.txt
3 
4 #修改后的文件,需要添加暂存区并提交本地库
5 git add hello.txt
6 
7 #提交本地库,注意这里不要加hello.txt了,提交成功后只会修改合并后的分支也就是master分支的内容,不会修改hot-fix分支的内容
8 git commit -m "merge test"

命令执行结果:

手动修改冲突:删除特殊字符和不想要的代码,留下你想要的代码
笔记四:git分支

修改文件添加暂存区并提交本地库:
笔记四:git分支

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/30745.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信