同一仓库拉取两个不同分支进行合并,(本地项目更新至开源项目最新版)
前提:开源项目和本地项目同一个远程仓库
本地工作区操作
1.初始化 git init
2.连接远程仓库 git remote add 别名 xxx.git
3.拉取对应的分支
git fetch origin master //从远程的origin仓库的master分支下载代码到本地的origin master
4.克隆分支(指和本地项目一致的分支代码)
git clone -b 分支名仓库地址
image.png
5.提交本地项目至该分支上
git add .
git commit -m "注释"
git push 分支名
遇到的问题
1.远程密码输入错误
解决:https://blog.csdn.net/mmyhs/article/details/81589419
image.png
2.分支合并产生冲突
出现冲突原因:
修改同一个文件的相同区域的内容,git无法分辨哪个是你想要的,需要手动确认
操作如下:
git ls-files -s 查看合并情况
该命令输出的第二列的值含义:
image.png为0表示对应的文件没有冲突,合并成功,
如果不为0,则表示产生了合并的冲突,
具体的值对应的意义是:1表示两个用户之前一个共同版本的对应文件内容;
2表示当前用户对应的文件版本;
3表示合并后的文件对应的远程版本
git show :n:filename 查看对应文件的对应版本的内容
image.pngn:该git ls-files -s命令输出的第二列的值
filename:文件名
解决:方法1:
需要注意的是,对应的冲突文件的内容已经发生了改变,里面对应的冲突区域的内容将会同时存在当前分支的内容和远程版本的内容,如下图。我们可以手动对该文件进行修改操作,然后在手动add、commit、push就可以了
image.png
方法2:
通过命令:git mergetool打开工具,默认git提供的是kdiff3,其中上方的三个界面从左到右依次为:两个版本的前一个共同版本的文件版本、当前本地版本的文件版本、合并后的文件版本
git mergetool命令打开 kdiff3图形工具
image.png
图形工具界面:
image.png
A区为修改前,B区为本地(local)版本库修改,C区为远程版本库(remote)信息,在最下方点击右键选择需要使用的版本库,修改后保存退出即可
常用命令:
i 进入编辑页面
wq!:强制保存退出
q!:强制退出
wq:保存退出
merge.conflictstyle:该配置变量定义冲突文件中冲突内容的标记风格
两个可用的风格:
默认的merge和diff3
*默认的merge风格使用标准的冲突分界符<<<<<<<=======>>>>>>>读冲突内容进行标识,两个文字块分别是
<<<<<<<
本地的修改
=======
他人的修改
>>>>>>>
即:
image.pngdiff3风格会在冲突文件中出现三个文字块,<<<<<<< ||||||| ======= >>>>>>>,分别表示本地更改版本、共同的原始版本、他人更改的版本
不足之处,欢迎指正!!
网友评论