一、直接合并
1)快进提交
命令:git merge Dev
如图:
![](https://box.kancloud.cn/2d3a653ff568a9c619cc004863a036d2_1042x556.png)
2)合并提交
如图:
特点:会生成一个新的commit对象
![](https://box.kancloud.cn/c401b658100edbdd8528d7986e9e4901_975x546.png)
二)压合合并
特点:
1)把一个分支上的左右提交,合并到一个提交,然后合并到其他分支上
2)一般应用于一个bug的修复(必须修复一个bug需要多次提交,我们就可以把多次提交合并成一个提交,然后合并到master分支)
场景:
一般用于一个bug的修改,或者某个新功能的分支
* 切换到master分支
[root@static Pet_ios]# git merge --squash elephant (压合合并)
Updating 9fb1f99..4bef569
Fast-forward
Squash commit -- not updating HEAD
elephant.txt | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 elephant.txt
[root@static Pet_ios]# git status
On branch master
Your branch is ahead of 'origin/master' by 18 commits.
(use "git push" to publish your local commits)
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: elephant.txt
注意:压合合并,不会自动提交,需要压合后,运行一次commit命令
[root@static Pet_ios]# git commit
Squashed commit of the following:
commit 4bef569fc6bddf1e40d771beb4906a4b2c860d17
Author: xionghaihua <xionghaihua@91als.com.cn>
Date: Sat Dec 23 13:56:19 2017 +0800
三、 分支衍合
git rebase的用法
场景:
一般情况基于某个开源软件做二次开发,我们会基于某个master分支创建一个分支,我们提交对象到这个分支,但是此时开源软件(master)也在不断发过新的功能,如果我们还想使用,就会把master分支上的提交,合并到我们的分支上
如图:
![](https://box.kancloud.cn/6c29e2cb7f1163f4085c6312c44c0b1e_1345x521.png)
git merge 会生成一些额外的新的commit对象,
- 第一部分:Git的基本操作
- 第一章:git软件的安装
- 第一节:在centos6.8上安装git-2.3
- 第二节:在windows上安装git-bash和TortoiseGit软件
- 第二章: Git的基本概念
- 第一节:git的基本操作
- 第二节:git的深入理解(内部运行机制)
- 第三章:git的文件管理
- 第一节:文件的添加及提交
- 第二节:文件的删除、回退等
- 第三节:忽略指定格式的文件
- 第四节:撤销本地仓库的修改
- 第四章:git的commit对象深入理解
- 第一节:查看提交历史(git log)
- 第二节:提交查找(git grep)
- 第三节:git版本库回退
- 第五章: Git分支管理
- 第一节:分支的概念及基本使用
- 第二节:Git分支管理策略
- 第三节:Git分支合并
- 第四节:推送本地分支到远程分支
- 第七章: Git常用命令详解
- 第一节:git fetch命令
- 第二节:git pull命令
- 第三节:git push命令
- 第四节: git merge命令
- 第五节:git rebase命令
- 第八章:远程仓库管理
- 第二部分: gitlab版本控制系统
- 第一节:"远程仓库”版本回退解决方案
- 第二节:远程分支和本地分支
- 第九章:Git冲突解决
- 第十章:客户端操作
- 第十章:git常规操作
- 第一章:安装gitlab服务器
- 第一节:在centos系统上安装
- 第二章:配置GitLab服务器
- 第一节:关闭gitlab注册功能
- 第二节:在gitlab上创建项目、组、用户
- 第三节:汉化gitlab
- 第四节:gitlab配置邮箱通知
- 第五节:gitlab配置https访问
- 第三章:使用过程常见的故障
- 第三部分: gogs版本控制系统
- 第一章:在centos6上基于二进制包安装gogs软件
- 第二章:gogs服务器的配置
- 第一节:gogs服务器上创建项目、用户
- 第二节:nginx反代gogs,通过https
- 第三节:gogs启动脚本
- 第四节:git保存密码到本地
- 第三章:gogs服务器的备份和恢复
- 第一节:gogs备份操作