Gitlab+Jenkins学习之路(五)之git merge和git rebase的区别
命令行测试
[root@linux-node1 ~]# mkdir testing
[root@linux-node1 ~]#
[root@linux-node1 ~]# cd testing/
[root@linux-node1 testing]#
[root@linux-node1 testing]# git init
Initialized empty Git repository in /root/testing/.git/
[root@linux-node1 testing]# echo "" > index.html
[root@linux-node1 testing]# git add .
[root@linux-node1 testing]# git commit -m "first commit"
[master (root-commit) b712131] first commit
file changed, insertion(+)
create mode index.html
[root@linux-node1 testing]# echo "a file" > a.txt
[root@linux-node1 testing]# git add .
[root@linux-node1 testing]# git commit -m "add a.txt"
[master 025e8a3] add a.txt
file changed, insertion(+)
create mode a.txt
[root@linux-node1 testing]# echo "b file" > b.txt
[root@linux-node1 testing]# git add .
[root@linux-node1 testing]# git commit -m "add b.txt"
[master f4b13b6] add b.txt
file changed, insertion(+)
create mode b.txt
[root@linux-node1 testing]# git log
commit f4b13b6d3fc390eacb59e0d6223ac37329d96d6f
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: +
add b.txt
commit 025e8a337bfe312065d93b040852ceb532ef6642
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: +
add a.txt
commit b712131d81e3224f72f97c76f855e28da413450e
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: +
first commit
[root@linux-node1 testing]# git checkout -b dev
Switched to a new branch 'dev'
[root@linux-node1 testing]# git status
On branch dev
nothing to commit, working directory clean
[root@linux-node1 testing]# git log
commit f4b13b6d3fc390eacb59e0d6223ac37329d96d6f
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: + add b.txt commit 025e8a337bfe312065d93b040852ceb532ef6642
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: + add a.txt commit b712131d81e3224f72f97c76f855e28da413450e
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: + first commit
[root@linux-node1 testing]# echo "welcome to beijing" > test1.txt
[root@linux-node1 testing]# git add .
[root@linux-node1 testing]# git commit -m "test1"
[dev d224e8c] test1
file changed, insertion(+)
create mode test1.txt
[root@linux-node1 testing]# echo "welcome to shanghai" > test2.txt
[root@linux-node1 testing]# git add .
[root@linux-node1 testing]# git commit -m "test2"
[dev e254dd5] test2
file changed, insertion(+)
create mode test2.txt
[root@linux-node1 testing]# git log
commit e254dd5657d99ed287faf62f74b566a7ac1bf858
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: + test2 commit d224e8cb4a51a65377c8d8eb75c3613b197e47a4
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: + test1 commit f4b13b6d3fc390eacb59e0d6223ac37329d96d6f
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: + add b.txt commit 025e8a337bfe312065d93b040852ceb532ef6642
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: + add a.txt commit b712131d81e3224f72f97c76f855e28da413450e
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: + first commit
[root@linux-node1 testing]# git checkout master
Switched to branch 'master'
[root@linux-node1 testing]# git status
On branch master
nothing to commit, working directory clean
[root@linux-node1 testing]# echo "master1" > master1.txt
[root@linux-node1 testing]# git add .
[root@linux-node1 testing]# git commit -m "master1"
[master 1ebe653] master1
file changed, insertion(+)
create mode master1.txt
[root@linux-node1 testing]# echo "master2" > master2.txt
[root@linux-node1 testing]# git add .
[root@linux-node1 testing]# git commit -m "master2"
[master 814b217] master2
file changed, insertion(+)
create mode master2.txt
[root@linux-node1 testing]# git log
commit 814b217ae84ca4ad541c36d96e9b3c2744bca849
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: + master2 commit 1ebe65348f73958eeafce158f922d83e386faa78
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: + master1 commit f4b13b6d3fc390eacb59e0d6223ac37329d96d6f
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: + add b.txt commit 025e8a337bfe312065d93b040852ceb532ef6642
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: + add a.txt commit b712131d81e3224f72f97c76f855e28da413450e
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: + first commit
[root@linux-node1 testing]# git merge dev
Merge made by the 'recursive' strategy.
test1.txt | +
test2.txt | +
files changed, insertions(+)
create mode test1.txt
create mode test2.txt
[root@linux-node1 testing]# git log
commit df1da42a6c93152001199d684f01702eb6cb622f
Merge: 814b217 e254dd5
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: + Merge branch 'dev' commit 814b217ae84ca4ad541c36d96e9b3c2744bca849
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: + master2 commit 1ebe65348f73958eeafce158f922d83e386faa78
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: + master1 commit e254dd5657d99ed287faf62f74b566a7ac1bf858
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: + test2 commit d224e8cb4a51a65377c8d8eb75c3613b197e47a4
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: + test1 commit f4b13b6d3fc390eacb59e0d6223ac37329d96d6f
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: + add b.txt commit 025e8a337bfe312065d93b040852ceb532ef6642
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: + add a.txt commit b712131d81e3224f72f97c76f855e28da413450e
Author: xiaoming <xiaoming@.com>
Date: Thu Dec :: + first commit
此时,整个分支合并图如下:
分支的状态会保留
如果使用git rebase dev,分支合并图如下:
分支的状态会清除
Gitlab+Jenkins学习之路(五)之git merge和git rebase的区别的更多相关文章
- Gitlab+Jenkins学习之路(一)之Git基础
1.GIT基础 GIT是一个分布式版本管理系统,速度快,适合大规模,跨地区多人协同开.SVN是一个集中式版本管理系统. (1)GIT生态 GIT分布式版本管理系统 Gitlab git私库解决方 ...
- Gitlab+Jenkins学习之路(三)之gitlab权限管理--issue管理
1.创建Group,User,Project 创建一个组,组名为java Group path http://192.168.56.11/java Visibility Level: #为权限级别,一 ...
- Gitlab+Jenkins学习之路(八)之发布maven项目及按版本发布
一.什么是Maven maven是一个项目管理和综合工具.Maven提供给开发人员构建一个完整的生命周期框架. 开发团队可以自动完成该项目的基础设施建设,Maven使用标准的目录结构和默认构建生命周期 ...
- Gitlab+Jenkins学习之路(十一)之Jenkins自动触发构建和发布
思路图: 一.下载gitlab plugin jenkins-->系统管理-->管理插件-->下载并安装gitlab plugin 二.配置gitlab认证 路径:Jenkins-- ...
- Gitlab+Jenkins学习之路(十三)之发布Java项目到tomcat
一.新建一台虚拟机安装tomcat ()安装JDK 官网下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downl ...
- Gitlab+Jenkins学习之路(十四)之自动化脚本部署实践
目录 一.环境说明和准备 1.环境说明 2.服务器准备工作 二.发布脚本编写 1.自动化部署流程设计 2.自动化部署脚本编写 三.发布测试 1.开发机和github添加ssh信任 2.克隆项目到开发机 ...
- Gitlab+Jenkins学习之路(四)之gitlab备份和恢复
gitlab的备份和恢复 (1)创建备份目录,并授权 [root@linux-node1 ~]# mkdir /data/backups/gitlab -p [root@linux-node1 ~]# ...
- Gitlab+Jenkins学习之路(六)之Jenkins部署、升级和备份
一.什么是持续集成? (1)Continuous integration(CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集 ...
- Gitlab+Jenkins学习之路(七)之发布PHP项目
使用git+jenkins实现持续集成 Step1:构建一个自由风格的php-deploy Step2:Gernal配置,丢弃旧的构建,防止jenkins构建较多之后变臃肿 Step3:源码管理:这里 ...
随机推荐
- JAVA使用POI如何导出百万级别数据
用过POI的人都知道,在POI以前的版本中并不支持大数据量的处理,如果数据量过多还会常报OOM错误,这时候调整JVM的配置参数也不是一个好对策(注:jdk在32位系统中支持的内存不能超过2个G,而在6 ...
- JavaScript运行机制的学习
今天在偶然在网上看到一个JavaScript的面试题,尝试着看了一下,很正常的就做错了,然后给我们前端做,哈哈,他居然也顺理成章做的错了,代码大概是这样的 /*1 下面代码会怎样执行?执行结果是什么* ...
- 名词解释:Linux内存管理之RSS和VSZ
Linux内存管理中不管是top命令还是pmap命令,都会有RSS和VSZ这两个名词,这里解释一下: RSS( Resident Set Size )常驻内存集合大小,表示相应进程在RAM中占用了多少 ...
- 辉光UIView的category
辉光UIView的category 本人视频教程系类 iOS中CALayer的使用 效果如下: 源码: UIView+GlowView.h 与 UIView+GlowView.m // // UI ...
- 将字典或者数组转换成JSON数据或者字符串
将字典或者数组转换成JSON数据或者字符串 源码: NSDictionary+JSON.h 与 NSDictionary+JSON.m // // NSDictionary+JSON.h // Cat ...
- yii 验证码功能的实现
首先知晓我们在使用验证码的时候通常是和我们的表单小部件配合使用首先我们创建model层 新建一个php文件 名字叫做Verifycode.php 要在我们的model层 创建我们的验证码的验证规则,我 ...
- 有效集 matlab代码
%有效集 function activeset H=[2 -1; -1 4]; c=[-1 -10]'; Ae=[ ]; be=[ ]; Ai=[-3 -2; 1 0; 0 1]; bi=[-6 0 ...
- Java补充内容
在第一个Java程序中已经提到一些基本的知识点,这里再补充几点. 1. 成员变量和局部变量的区别 成员变量:成员变量定义在类中,默认初始值为0,定义时可以不初始化,在整个类中可见. 局部变量:局部 ...
- codeforces 17D Notepad
codeforces 17D Notepad 题意 题解 TBD 更新模板(phi.欧拉降幂) 代码 #include<bits/stdc++.h> using namespace std ...
- Git 如何上传文件夹
Github开源代码库以及版本控制系统,可以托管各种git库,并提供web访问界面.很多朋友喜欢喜欢将个人Blog或小型项目托管到github,这样既方便又简单. 下面介绍如何将本地文件上传到gith ...