Git使用 您所在的位置:网站首页 威廉指标修改后提交不了 Git使用

Git使用

2024-06-27 00:43| 来源: 网络整理| 查看: 265

前提:

1、自己:拉取远程分支A,修改后提交为新分支B;

2、其他同事:修改提交C分支,且比自己先合并进A分支;

现状:A分支有新内容;自己的B分支也有新内容;

需求:把B分支合并进A分支;

若直接把自己的 B分支合并进A分支,有不小可能性会发生冲突;导致A分支发生错误;

解决方法:

1、先更新本地A分支,使本地A分支和远程A分支同步;

2、将自己的修改的B分支,与本地更新后的A分支合并,得到新的B分支;

虽然是把A分支合并进B分支里,但以A分支内容为主,当解决合并冲突时,A文件覆盖B文件;

3、解决合并时产生的冲突

解决冲突后,提交B分支,更新远程B分支;

4、检查合并后的工程是否正常运行:

合并后,A的所有内容完整进入B分支;B分支相对早期A分支有改动的内容,因为冲突覆盖会有内容被修改;故合并后,重新运行项目,解决因冲突导致的bug(参数丢失,场景面板修改,脚本还原等导致不能正常运行);

5、解决B分支Bug后,再提交无误的B分支更新到远程;

6、远程B分支合并进远程A分支;

注:本地AB分支合并后的B分支,相对远程的主分支A,只是在新A分支基础上更前进了一步,

此时B分支合并进A分支,相当于把A直接往前更新,不存在冲突;

具体操作: 第一阶段,本地相关分支合并

1、切换本地A分支(早先拉取到本地的A分支),然后更新本地A分支(同步为最新远程A分支);

$ git branch -a     //查看分支名 $ git checkout A  //根据分支名,切回本地目标A分支(本地有A分支) $ git checkout -b 本地分支名 origin/远程分支名 //根据分支名,拉取远程A分支到本地(本地无A分支) $ git pull     //同步到远程进度,为之后合并做准备

(分支切换、更新等具体操作,可查看先前文章:常用Git指令——本地分支相关 )

2、切回B分支(在早先A分支基础上切出来修改的功能分支);

$ git checkout B  //这个是我们做了修改,之后要合并进远程A的分支;

4、把更新后的A分支完整合并进B分支

//此时是在 B分支下 git merge A    //将B分支与A分支合并 第二阶段,解决合并冲突

合并后,一般会有冲突,并且会有提示:

“有冲突,合并失败,解决冲突后提交实现B分支与A分支的合并”

此时,可以退出git bush ,改使用TortoiseGit可视化操作;

也可选择使用Bush命令行变基,但我这里使用TortoiseGit更清楚;

(1)选中工程文件夹,右键选择TortoiseGit——解决冲突;

(2)弹出冲突文件列表,依次双击文件,进入文件比较界面;

 

(3)依次解决每个冲突块:

1)冲突区选择用哪个文件覆盖,作为合并后的文件信息:

选中标记冲突字样后鼠标右键,可选择“使用该文件/该文段”(一般选择A分支文件的文段,同步为远程主分支的修改)

2)解决冲突后,保存,选择标记为 “已解决冲突”;然后关闭界面;

3)继续处理下个有冲突的文件,直到全部冲突文件解决;

(可以看到冲突文件列表的右下角就有提示信息:解决冲突后提交变更;)

第三阶段,解决冲突后,使用TortoiseGit提交更新远程B分支

也可选择使用Bush命令行提交上传;这里仅详细介绍使用TortoiseGit来提交;

(分支更新提交等具体操作,可查看先前文章:常用Git指令——本地分支相关 )

(1)选中项目文件夹,右键选择Git提交->"B功能"分支;

(2)弹出提交界面;会显示之前对冲突文件进行修改的信息;

(3)设置提交信息

勾选设置日期和作者,提交日志信息(规范提交分支),“提交”;

(4)提交时,会出现提示窗口,提示之前合并修改解决冲突文件改变,这里选择“忽略"按钮继续提交;提交完后,并推送到远程;

这时候就冲突解决完,合并完成,并且分支更新到主分支并提交了;

第四部分,检查合并后工程,确认项目无误后,再次提交更新到远程B分支

上面提交后,远程B分支就可以直接合并到远程A分支里的,但因之前解决冲突修改覆盖一些项目文件,可能项目存在Bug,得进行下面检查功能操作;

打开本地分支,看看合并后,功能能否正常运行,有问题就修改,再提交没有问题的功能分支;

(因为B分支功能是自己写的,比较清楚脚本逻辑,方便修改,所以上面合并冲突时,都是选择A文件覆盖B文件)

第五部分,远程A分支和B分支合并

GitLab/Gitee/GitHub等远程控制平台上,管理员把远程B分支合并进A分支里;

仅需要直接操作的步骤过程,可看我另篇文章:

GitLab提交不冲突的功能分支(仅步骤版)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有