文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

git中包含多个分支和合并实现的实例分析

2023-06-28 15:54

关注

git中包含多个分支和合并实现的实例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

下面和大家讲解一下git的使用。

一、包含多个分支和合并实现的实例

出现合并冲突的实例

[root@localhost ~]# mkdir -p /git/branche[root@localhost branche]# cp -rv ../wanyan/* .   //偷懒一下`../wanyan/README’ -> `./README’`../wanyan/lib’ -> `./lib’`../wanyan/lib/comment’ -> `./lib/comment’`../wanyan/lib/include’ -> `./lib/include’`../wanyan/lib/include/comment’ -> `./lib/include/comment’`../wanyan/lib/include/main.c’ -> `./lib/include/main.c’`../wanyan/lib/README’ -> `./lib/README’[root@localhost branche]# git initInitialized empty Git repository in /git/branche/.git/[root@localhost branche]# git add .[root@localhost branche]# git commit -m “1st commit”[master (root-commit) e9f37b6] 1st commit5 files changed, 9 insertions(+), 0 deletions(-)create mode 100644 READMEcreate mode 100644 lib/READMEcreate mode 100644 lib/commentcreate mode 100644 lib/include/commentcreate mode 100644 lib/include/main.c[root@localhost branche]# cat .git/HEADref: refs/heads/master[root@localhost branche]# cat .git/refs/heads/mastere9f37b62445a7c855108cb00455c9922ea356c29[root@localhost branche]# git cat-file -t e9f3Commit

第一次改变:

[root@localhost branche]# vi lib/comment includechangethe last change[root@localhost branche]# git commit -a -m “2rd commit”[master c2a876e] 2rd commit1 files changed, 1 insertions(+), 0 deletions(-)

第二次改变:

[root@localhost branche]# vi README just test!another hang!last hang[root@localhost branche]# git commit -a -m “3rd commit”[master f5febf9] 3rd commit1 files changed, 1 insertions(+), 0 deletions(-)

创建分支

[root@localhost branche]# git branch laji[root@localhost branche]# ll .git/refs/heads/total 16-rw-r–r– 1 root root 41 Nov 27 05:19 laji-rw-r–r– 1 root root 41 Nov 27 05:18 master[root@localhost branche]# cat .git/refs/heads/laji  //以下可以看出指向同一个commitf5febf9e98c5dc2a1279a56c47642677fdea79ec[root@localhost branche]# cat .git/refs/heads/masterf5febf9e98c5dc2a1279a56c47642677fdea79ec[root@localhost branche]# git branch  //查看当前使用的分支laji* master[root@localhost branche]# git checkout laji  //分支的切换Switched to branch ‘laji’[root@localhost branche]# git branch* lajimaster[root@localhost branche]# cat .git/HEADref: refs/heads/laji

接下来演示的是分支之间的关系(互不影响),在分支laji下的修改对master分支没任何影响。

首先是在laji分支的下的修改

[root@localhost branche]# vi READMEjust test!another hang!last hangchange for branch[root@localhost branche]# git  commit -a -m “laji 4th commit”[laji b72a123] laji 4th commit1 files changed, 1 insertions(+), 0 deletions(-)[root@localhost branche]# cat READMEjust test!another hang!last hangchange for branch[root@localhost branche]# cat .git/refs/heads/laji  //commit不相同了,可见出现了分支b72a1238f9962dd103c5839077026e7c342595ce[root@localhost branche]# cat .git/refs/heads/masterf5febf9e98c5dc2a1279a56c47642677fdea79ec

然后切换到master分支观察下

[root@localhost branche]# git checkout masterSwitched to branch ‘master’[root@localhost branche]# git branchlaji* master[root@localhost branche]# cat READMEjust test!another hang!last hang接着创造分叉(就是对mater下做出进一步的git)[root@localhost branche]# git branchlaji* master[root@localhost branche]# vi README just test!another hang!last hangThe master change[root@localhost branche]# git commit -a -m “master 4th commit”[master bf7bf97] master 4th commit1 files changed, 1 insertions(+), 0 deletions(-)[root@localhost branche]# cat README   //列出和laji分支做对比just test!another hang!last hangThe master change[root@localhost branche]# git checkout lajiSwitched to branch ‘laji’[root@localhost branche]# cat READMEjust test!another hang!last hangchange for branch

最后就是分支的合并(把laji 合并到master),这个合并可以是不同的文件之间的合并(因为合作开发项目时,所做的工作基本是很难相同的)

[root@localhost branche]# git branchlaji* master[root@localhost branche]# git merge lajiAuto-merging READMECONFLICT (content): Merge conflict in READMEAutomatic merge failed; fix conflicts and then commit the result.[root@localhost branche]# cat README  //因为是同一个文件的合并出现了冲突just test!another hang!last hangThe master change=======change for branch>>>>>>> laji[root@localhost branche]# git branchlaji*master[root@localhost branche]# vi README just test!another hang!last hangThe master changechange for branch~[root@localhost branche]# git add .[root@localhost branche]# git commit “last commit”这样就可以了,解决了冲突,提交成功。[root@localhost branche]# git branch -D laji  //删除没用的分支Deleted branch laji (was b72a123).

不出现冲突的实例

[root@localhost other]# cd ..[root@localhost git]# mkdir another[root@localhost git]# cd another/[root@localhost another]# vi a1 wanyan~[root@localhost another]# vi a2 ethnicity[root@localhost another]# git initInitialized empty Git repository in /git/another/.git/[root@localhost another]# git add .[root@localhost another]# git commit -m “1st commit”[master (root-commit) f723f47] 1st commit2 files changed, 2 insertions(+), 0 deletions(-)create mode 100644 a1create mode 100644 a2[root@localhost another]# git branch laji[root@localhost another]# git branchlaji* master[root@localhost another]# git checkout lajiSwitched to branch ‘laji’[root@localhost another]# vi a1 wanyanzhengjing[root@localhost another]# git commit -a -m “laji 2nd commit”[laji 05cda63] laji 2nd commit1 files changed, 1 insertions(+), 0 deletions(-)[root@localhost another]# git checkout master[root@localhost another]# vi a2 ethnicitybeta[root@localhost another]# git commit -a -m “mater 3rd commit”[master 1239b8e] mater 3rd commit1 files changed, 1 insertions(+), 0 deletions(-)[root@localhost another]# cat a1wanyan[root@localhost another]# cat a2ethnicitybeta[root@localhost another]# git checkout lajiSwitched to branch ‘laji’[root@localhost another]# cat a1wanyanzhengjing[root@localhost another]# cat a2ethnicity[root@localhost another]# git checkout masterSwitched to branch ‘master’[root@localhost another]# git merge lajiMerge made by the ‘recursive’ strategy.a1 |    1 +1 files changed, 1 insertions(+), 0 deletions(-)[root@localhost another]# cat a1wanyanzhengjing[root@localhost another]# cat a2ethnicitybeta[root@localhost another]# git branch -D laji   //删除分支Deleted branch laji (was 05cda63).[root@localhost another]# git branch* master

二、仅有一个分支的合并实例

[root@localhost git]# mkdir other[root@localhost git]# cd other/[root@localhost other]# vim mainhello ethnicitybeta[root@localhost other]# git initInitialized empty Git repository in /git/other/.git/[root@localhost other]# git add .[root@localhost other]# git commit -m ‘1st commit’[master (root-commit) 9ef10c3] 1st commit1 files changed, 1 insertions(+), 0 deletions(-)create mode 100644 main[root@localhost other]# git branch wanyan[root@localhost other]# git checkout wanyanSwitched to branch ‘wanyan’[root@localhost other]# git branchmaster*wanyan[root@localhost other]# vi main hello ethnicitybetawanyanzhenjiang~[root@localhost other]# git commit -a -m “wanyan 2nd commit”[wanyan 96aa677] wanyan 2nd commit1 files changed, 1 insertions(+), 0 deletions(-)[root@localhost other]# cat mainhello ethnicitybetawanyanzhenjiang[root@localhost other]# git checkout masterSwitched to branch ‘master’[root@localhost other]# git branch* masterwanyan[root@localhost other]# cat mainhello ethnicitybeta[root@localhost other]# git checkout masterSwitched to branch ‘master’[root@localhost other]# git merge wanyanUpdating 9ef10c3..96aa677Fast-forward    //表示被合并的分支并没有出现分叉main |    1 +1 files changed, 1 insertions(+), 0 deletions(-)[root@localhost other]# cat mainhello ethnicitybetawanyanzhenjiang

看完上述内容,你们掌握git中包含多个分支和合并实现的实例分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网行业资讯频道,感谢各位的阅读!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯