git的使用(5)理解和使用分支

如果在两条分支上编辑同一个文件,做不同的修改,然后合并这两it那分支,将会发生什么情况?同城情况先git会成功自动合并,但并不总是这样。

git不能自动合并时,成为冲突,冲突总是发生在对不同分支上的同一文件的同一文本块以不同的方式修改,并试图合并的时候。

下面演示如何处理冲突,首先,创建名为about的新分支:

git checkout –b about master

image

然后在about.html文件中添加一些内容,保存文件并提交到版本库中:

 

git add about.html

git commit –m “a list of programming languages”

image

接着创建一条名为about2的分支,但是先不要切换到该分支:

git branch about2 about

切换之前,在about.html文件中再添加一些内容,然后提交修改:

git commit –m “add some content” -a

 image

此时已在about分支下做此修改,而在about2分支则没有,因为about2分支创建于第二次提交之前。

现在切换到about2分支,并刷新about.html文件查看,结果是刚才所做的最后一次修改并没有出现在about2分支上:

git checkout about2

下面在about.html文件中刚才修改过的同一行位置添加不同的内容,然后保存并提交修改:

git commit –m “add wrong to this file” –a

image

现在已经埋下了潜在的冲突,当然,通常情况下,用户一是不到这一点,直到合并时git报告冲突,下面我们操作下,

首先切换到about分支上,然后将about2分支合并到about分支上:

git checkout about

git merge about2

image

注意命令输出中CONFLICT那一行,它表示about.html文件中有冲突。

对于简单的合并,只需要手工编辑并解决冲突即可,然后报讯修改,暂存并提交,就像正常提交一样。

对于较复杂的合并,可以使用可视化合并工具,通过可视化合并工具,解决冲突,git自动暂存修改,等待提交,提交时,若不用-m参数,则git会使用刚才合并操作相关的信息来填充提交留言:

git commit

上面介绍了解决了偶尔发生的合并冲突,这是关于分支的最常见的3类操作,下面将学习工作环境清理:删除分支。

删除分支

有些分支没有必要长期报讯,比如分支中的代码已经打了标签并已经发布,或者实验分支完成工作或中途废弃等等。这是应该删除不再使用的分支,以免版本库中的分支过多,难以管理。

只有当要删除的分支已经成功合并到当前分支时,删除分支的操作才能成功。如果某个分支还没有合并,那么删除这个分支,会报错:

git branch –d about2

image

因为about2还没有合并,所以无法删除,但是可以使用如下命令,强行删除:

git branch –D about2

image

对于一个合并过的分支,可以使用如下命令直接删除:

git branch –d about

image

分支重命名

分支名称通常起提醒功能,告诉开发人员当前正在哪里工作,有时这样的提醒信息需要改变,这时需要改变分支的名称:

git branch –m contact contacts

git branch

 image

参数-m不会覆盖已有分支名称,所以新分支名称必须是唯一的,如果是哦那个已经存在的分支名称,git会报告如下反馈信息:

git branch –m new contacts

image

将参数-m改为-M,就可以覆盖已有分支名称了,大写M通知git强行覆盖现有分支,这种操作要小心使用。

到目前为止,已经介绍了创建和维护分支的方法。下面的文章会介绍关于“查询git历史记录”。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值