实验内容:在本地库中建立两个不同分支,修改同一个文件同一代码块,两分支先后将修改合并到master分支上,master在合并第二个分支代码时,产生冲突。完成对冲突的修改。
步骤:
(1)master分支
git init #新建一个git环境
touch mergeTest.txt #在master分支建立文件
vim merteTest.txt #使用vim打开文件加入内容 hello master branch!
cat merteTest.txt #查看文件内容
git add . #把该文件添加到Git仓库缓存区
git commit -m 'master commit' #将缓存区内容添加到本地仓库的master分区中
(2)建立两个分支aBranch,bBranch
git checkout -b bBranch #建立分支bBranch
git checkout -b aBranch #建立分支aBranch
git branch -a #查看所有分支
(3)对建立的分支进行修改提交
aBranch分支:
cat mergeTest.txt #查看文件
vim mergeTest.txt #使用vim修改文件内容hello master-aBranch branch!
git add mergeTest.txt #添加至该分区缓存区
git commit -m 'aBranch commit' #从缓存区提交至该分区中
bBranch分支同理进行修改提交。
(4)合并分支后产生冲突
将aBranch分支合并到当前master分支上: git merge:默认情况下,Git执行“快进式合并”,会 直接将Master分支指向Develop分支。使用--no-ff参数后,会执行正常合并,在Master分支上生 成一个新节点。
git checkout master #切换分支到master
git status #用于显示工作目录和暂存区的状态
cat mergeTest.txt
git merge --no-ff aBranch #两者执行正常合并,在Master分支上生成一个新节点
git merge --no-ff bBranch
(5)解决冲突
在当前分支上(master),找到冲突文件,直接修改冲突代码。
cat mergeTest.txt #查看冲突文件
vim mergeTest.txt #vim打开文件修改冲突“hello master-aBranch-bBranch branch!”
#注意一定要删除冲突符号
cat mergeTest.txt #查看修改后文件内容
git add . #添加至缓存区
git commit -m 'fix conflict commit' #缓存区中提交至Master分支上生成一个新节点
git log --graph #查看分支合并的情况,其显示的结果中包含每个状态点的哈希值
(6)遇到的问题及解决办法:
1、执行git add 时出现:warning: in the working copy of ‘.‘, LF will be replaced by CRLF the next time Git touche问题的解决办法:
git config --global core.autocrlf true #提交时转换为LF,检出时转换为CRLF
2、使用git commit -m ‘**‘命令后显示Author identity unknown的解决方法:
git config --global user.name '***'
git config --global user.email '***' #在进行提交前设置提交代码时的用户信息
3、使用git branch命令出现fatal: detected dubious ownership in repository at ‘D:/‘的解决方法:
git config --global --add safe.directory "*";
版权归原作者 m0_53900396 所有, 如有侵权,请联系我们删除。