git合并代码注意事项

本地分支不能直接merge rel分支这样会让本地分支为主,有可能覆盖或者撤销其他人的代码

例如有两个人A、B

A的本地分支为af
B的本地分支为bf
rel分支为relf
master分支为master

A、B、rel这三个分支都是基于master创建

master分支包含 1,2,3三个文件
bf分支
有两个操作
修改1文件中的内容,
向3文件末尾添加文件
提交代码 并且拉取到了rel分支中

af分支
有一个操作
修改了1文件中的内容
提交代码 并且拉取到rel分支,(此时有冲突了,因为两个分支都修改了1文件)

af本地merge了rel分支,
此时显示了冲突代码,
解决了冲突,并且只提交了冲突文件,将bf分支对3文件的添加内容撤回了
af拉取到rel分支

这时候查看rel分支会发现 bf添加到3文件中的代码消失不见了
因为af做了本地merge rel的操作,并且撤回了bf的操作后提交了,所以消失不见了,盲猜一波,合并的时候,将所有的提交记录重新定位到了之前未修改的统一位置,af再次提交的时候没有提交bf的修改,所以拉取后,导致代码被冲没了。

A的本地分支为af
B的本地分支为bf
rel分支为rel
master分支为master

A、B、rel这三个分支都是基于master创建

master分支包含 1,2,3三个文件
bf分支
有两个操作
修改1文件中的内容,
向3文件末尾添加文件
提交代码 并且拉取到了rel分支中

af分支
有一个操作
修改了1文件中的内容
提交代码 并且拉取到了rel分支,(此时有冲突了,因为两个分支都修改了1文件)

此时本地切换到rel分支
rel分支合并af分支,会显示af分支的所有提交记录,并且展示冲突的文件。不会影响到rel已经提交的内容。
此时解决冲突提交af即可

git 就是一个链表,每一个分支都是一个链表,每一个节点都是一个提交记录

af merge rel的时候 会以af为准,例如
af做了什么操作 最后会形成一个新版本提交上去

rel merge af的时候会以rel为准,修改的内容等都会提交上去

bf 提交到了 rel
af merge rel 的时候会以af为准,找到相同的版本后,ref(相同版本后其他人提交的代码)修改的内容都会提示给af,冲突删除等文件会进行提示是否提交(不提交就相当于将其他人的代码回退了),进行了修改之后形成新版本。此时如果再将af 拉取到 rel的话,此次合并也会拉取进去,并且替换为af为主的代码

bf 提交到了 rel
rel merge af 的时候会以rel为准,找到相同的版本后,af所修改的内容会提示给ref,冲突删除等会进行提示,不会影响ref原本的内容。形成新版本进行替换,此时提交rel后,冲突即可解决。

需要注意的就是,
af merge ref的时候需要将rel其他人的代码提交一并提交(不提交的话,别人的代码就会被回退了,因为是以af为准的)。
rel merge af的时候只需要提交自己修改过的代码与解决冲突文件即可。
总结,形成新版本后会进行版本的替换,以前面分支为主。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值