吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3491|回复: 6
收起左侧

[其他转载] Git教程(十)

[复制链接]
NullPointer 发表于 2016-12-21 12:13
本帖最后由 NullPointer 于 2016-12-21 15:49 编辑

1、解决冲突
1.1、什么是冲突?
例如:A修改Demo类的init方法,B也修改Demo类的init方法,但是A修改完了,提交了,当B检出的时候就会产生冲突,因为Git(不仅仅是Git,其他版本库也如此)无法知道你想要B修改的内容,还是想合并,所以他会提示冲突。
1.2、案例演示
(1)利用命令git checkout -b feature1新建个feature1分支并切换到此分支。
1.gif
(2)修改hello.txt文件,在文件末尾新增:test conflict feature1
(3)将hello.txt添加(git add)并提交(git commit)。
2.gif
(4)利用命令git checkout master切换到master分支
3.gif
(5)在master分支上继续修改hello.txt文件,在文件末尾新增:test conflict master
(6)将hello.txt添加(git add)并提交(git commit)。
现在变成了这样:
0.png
(7)进行合并。这种情况下无法进行“快速合并”,只能试图把各自的修改合并起来,但这种合并就可能会有冲突:如下
4.gif QQ图片20161221120757.png
(8)打开hello.txt文件查看,Git用<<<<<<<=======>>>>>>>标记出不同分支的内容,我们只需删除无用的内容,再次提交即可解决。
5.gif
现在变成了这样:
0 (1).png
(9)利用命令git log --graph可以查看合并分支情况。
1.png
(10)利用git branch -d feature1 删除分支
6.gif
2、分支管理策略
2.1、在第九节提到过,通常合并分支时Git会采用Fast Forward模式,但这种模式下,删除分支的话,会丢掉分支信息(git log将查不到)。若要强制禁用此模式,Git就会在merge时生成一个新的commit,这样可以用git log查看到分支信息。
2.2、强制禁用Fast forward采用--no-ff命令。
2.3、实战演示(只写步骤,自己根据步骤去操作,不会的留言):
(1)创建并切换到dev分支
(2)修改hello文件,并提交
(3)切换到master分支(4)合并分支,利用git merge --no-ff -m "merge with no-ff" dev
说明:--no-ff:强制禁用Fast forward模式。 -m:因为--no-ff会生成一个新的commit,所以-m添加注释
(5)合并后,git log查看分支,可以看到不用Fast forward进行合并后,变成如下图:
0.png
2.4、分支策略
(1)master分支应该是非常稳定的,只用来发布新版本,不能在上面干活。
(2)干活都在dev(或者其他)分支上,到发布的时候,再把master合并到dev。
(3)你和你团队都有分支,时不时合并到dev分支上,解决完冲突或其他问题后,再将master合并到dev,发布新版本。
(4)团队的分支看起来就像如下图:
0 (1).png

3、Bug分支

3.1、解释:比如你正在开发,突然有个紧急bug需要立马修改,但是你还没开发完,你又不能提交,又怕影响自改bug的时候会改动。这时候你可以先将你开发的内容“储藏”起来,等改完bug并提交后你在还原回来继续开发。
3.2、实战演示:
(1)在master分支上的hello.txt文本上随便写点什么,代表你在开发新的需求。
(2)但是紧急bug来了,要立马修改,可以用git stash命令将开发的“储藏”起来,这时候git status命令会告诉你没有任何东西可提交。
(3)创建bug01分支,并选择此分支。
(4)新增hehe.txt文件,随便写点什么,并add和commit。(hehe.txt代表修复的bug)
(5)回到master分支,合并bug01分支
(6)利用命令git stash list查看之前“储藏”的内容。
(7)用git stash pop命令恢复“储藏”的内容并删除此次“储藏”记录。
ps:恢复有两种方式:
(7.1)、git stash apply:此种方式stash内容并不删除,需要用命令git stash drop删除
(7.2)、git stash pop恢复“储藏”的内容并删除此次“储藏”记录。可以用git stash pop <name>进行恢复并删除某一个记录
(1~7)完整的视频演示:
http://oi5l9slpi.bkt.clouddn.com/Git-10-1.wmv

免费评分

参与人数 1热心值 +1 收起 理由
Akesudia + 1 蛮用心的

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

shuangyeying 发表于 2016-12-21 12:34
感谢分享。


头像被屏蔽
总有刁民想阴朕 发表于 2016-12-21 12:42
 楼主| NullPointer 发表于 2016-12-21 12:55

从第一讲开始看,跟着步骤操作,一学就会,我打算写15篇左右,每天一篇的看的话可以保证半个月左右从小白到熟悉Git。
不爱萌妹子 发表于 2016-12-21 13:01
感觉好牛逼的样子,但是看不懂,支持楼主
silentclown 发表于 2016-12-21 14:15
感谢分享。
ssou 发表于 2016-12-22 22:27
楼主辛苦了,虽然没看明白可以用来做什么,还是顶一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-30 12:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表