git如何合并分支代码

这篇文章主要讲解了“git如何合并分支代码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“git如何合并分支代码”吧!

git合并分支代码的方法:1、使用“git merge”命令,该命令用来做分支合并,可以将其他分支中的内容合并到当前分支中。2、使用“git rebase”命令,该命令用于改变当前的分支的基点,进而实现分支合并。

建立多人开发场景

1. 创建仓库

// 初始化仓库
git init
// 创建a.txt
touch a.txt
// 创建b.txt
touch b.txt
// 加入暂存区
git add .
// 提交
git  commit -m 'initial'

2. 创建 feature 分支

git checkout -b feature

3. 两个分支同时开发

feature 分支开发下一版本新功能,提交了两次,分别修改 a.txt 文件和 b.txt 文件。

git如何合并分支代码  git 第1张

master 分支开发本次版本功能,同样提交了两次,且修改了 a.txt 文件和 b.txt 文件。

git如何合并分支代码  git 第2张

当前分支情况如下图,各节点上面的字符是每次 commit 的散列值,当前 master 分支的 header 在 c5 节点上,feature 分支的 header 在 c3 节点上。
git如何合并分支代码  git 第3张

这个时候需要将 feature 分支合并回 master 分支,有两种方案:

  • 在 master 分支上直接 merge feature 分支;

  • 是先在 feature 分支上 rebase(变基),然后在 master 分支上 merge feature 分支。

下面分别说明一下这两种方案:

合并命令1:git merge

git merge 用来做分支合并,将其他分支中的内容合并到当前分支中。

git merge 操作比较暴力,也是用的比较多的方式,下面演示的是 feature 分支合并至 master 分支,具体过程如下:

  • 找到 feature 分支和 master 分支的最近共同祖先 commit 节点 c1;

  • 把 feature 分支的最新一次 commit 节点 c3 和 master 分支上的最新一次 commit 节点 c5 合并,此时若有冲突,则一次性解决所有冲突,然后生成一个新的 commit 节点 c6;

  • 同时根据两个分支上的 commit 时间的先后顺序,依次放到 master 分支上,使用git log可以看到时间顺序。

上面流程的结果示意图如下所示:

git如何合并分支代码  git 第4张

在项目中的操作命令如下。可以看到执行 git merge feature 命令后,存在冲突,进入 merging 工作区,然后一次性解决所有冲突后,提交一个新的 commit。

git如何合并分支代码  git 第5张

执行 gitk 命令行,可以在界面上看到当前分支如下图所示。有一个新的 commit。
git如何合并分支代码  git 第6张

合并命令2:git rebase

这个命令从名字上就可以直观看出它的功能:改变当前的分支的基点。对于 feature 分支,它是从 master 分支的 c1 节点创建的分支,所以它的基点就是 c1。如果在 feature 分支上执行 git rebase master ,其过程大致如下:

  • 找到当前 master 分支最新的 commit 节点 c5,将 feature 分支的基点变成 c5 节点。;

  • 若 feature 分支与 master 分支存在冲突,那么将根据 feature 分支的提交时间,依次解决冲突,并修改 feature 分支此次 commit 的散列值。

  • 最终在分支上看,呈现一条直线,但是存在历史commit覆写的问题。

上面过程的结果示意图如下所示,其中 c2’和 c3’表示散列值改变了。

git如何合并分支代码  git 第7张

值得注意的是:

  • 执行 rebase 操作的时候,需要保证 master 分支处于最新状态,否则在 merege 合并的时候也可能存在冲突,就失去使用 rebase 的意义。

  • 千万不要对已经推到远程的内容进行rebase,如果有人拉取远程代码后修改并提交,分支会变得极其麻烦。

了解其基本过程后,我们就可以是用 rebase 命令开始进行合并分支的操作:

  • 在项目中执行 git rebase master,如下所示。因为两次提交都存在冲突,故在 rebase 工作区中需要依次解决这些冲突。

git如何合并分支代码  git 第8张

在 feature 分支上执行 gitk 命令,可以在界面中看到:
git如何合并分支代码  git 第9张

  • feature 分支完成变基之后,切换回 master 分支执行 git merge feature,就可以完成合并操作。

git如何合并分支代码  git 第10张

在 master 分支上执行 gitk,其分支结构如下。可以看到分支呈现一条线,看上去非常清爽。

git如何合并分支代码  git 第11张

说明:git stash

有时候分支上的代码还没开发完成,需要合并分支,此时只需要:

1、执行 git stash 将工作区内容存储起来,然后选择上述两种合并分支的方式进行分支合并。

git如何合并分支代码  git 第12张

2、完成分支合并后,切回开发的分支,执行 git stash pop 将工作区内容弹出就可以继续愉快的写代码了。

git如何合并分支代码  git 第13张

感谢各位的阅读,以上就是“git如何合并分支代码”的内容了,经过本文的学习后,相信大家对git如何合并分支代码这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是蜗牛博客,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram