Git(10)-merge

Merge

  • 1. 无冲突合并
  • 2. 有冲突合并-手动解决
  • 3. git diff in merge
  • 4. 废弃合并
  • 5. 合并策略

merge相关的操作的命令

git checkout master
git merge alternate
# 解决冲突 .....
git add file_1
git commit -m "Add slternate line 5, 6"
git reset --hard HEAD     # before merge commit将工作目录和索引还原到git merge命令前状态
git reset --hard ORIG_HEAD # after merge commit 将工作目录和索引还原到git merge命令前状态
git checkout -m            # 把冲突解决方案搞砸了,想要返回到冲突的原始状态

合并操作:检出目标分支->确保工作区干净->执行合并操作。执行合并操作后,另一个分支不受影响。

1. 无冲突合并

合并不涉及相同文件的相同部分

chenyingying01@cyy merge % git checkout master
Switched to branch 'master'
chenyingying01@cyy merge % git status
On branch master
nothing to commit, working tree clean
chenyingying01@cyy merge % git merge alternate
Merge made by the 'recursive' strategy.file | 1 +1 file changed, 1 insertion(+)
chenyingying01@cyy merge % git log --graph --pretty=oneline --abbrev-commit
*   50fc402 (HEAD -> master) Merge branch 'alternate'
|\
| * 4fb8628 (alternate) Add alternate's line 4
* | 608c235 Another file
|/
* 61570a2 Initial 3 line file
chenyingying01@cyy merge %

2. 有冲突合并-手动解决

合并涉及相同文件的相同部分, merge时会产生冲突。需要手动的去修改冲突,然后在add, commmit。 代码分支合并时必须保证合入后不会影响原有的功能。

chenyingying01@cyy merge % git branchalternate
* master
chenyingying01@cyy merge % cat >> file
Line 5 stuff
Line 6 stuff
chenyingying01@cyy merge % git add file
chenyingying01@cyy merge % git commit -m "Add line 5 and line 6"
[master f0adb70] Add line 5 and line 61 file changed, 2 insertions(+)chenyingying01@cyy merge % git checkout alternate
Switched to branch 'alternate'
chenyingying01@cyy merge % cat >> file
Line 5 alternate stuff
Line 6 alternate stuff
chenyingying01@cyy merge % git diff
diff --git a/file b/file
index 3754bb3..260d21c 100644
--- a/file
+++ b/file
@@ -2,3 +2,5 @@ line 1 stuffline 2 stuffline 3 stuffline 4 alternate stuff
+Line 5 alternate stuff
+Line 6 alternate stuff
chenyingying01@cyy merge % git add file
chenyingying01@cyy merge % git commit -m "Add slternate line 5, 6"
line 1 stuff
[alternate 8de3d40] Add slternate line 5, 61 file changed, 2 insertions(+)chenyingying01@cyy merge % git checkout master
Switched to branch 'master'
chenyingying01@cyy merge % git merge alternate
Auto-merging file
CONFLICT (content): Merge conflict in file
Automatic merge failed; fix conflicts and then commit the result.
chenyingying01@cyy merge % git diff
diff --cc file
index f1209a9,260d21c..0000000
--- a/file
+++ b/file
@@@ -2,5 -2,5 +2,10 @@@ line 1 stufline 2 stuffline 3 stuffline 4 alternate stuff
++<<<<<<< HEAD+Line 5 stuff+Line 6 stuff
++=======
+ Line 5 alternate stuff
+ Line 6 alternate stuff
++>>>>>>> alternate
chenyingying01@cyy merge % vim file              # 手动解决冲突
chenyingying01@cyy merge % git add file
chenyingying01@cyy merge % git commit
[master b80e372] Create commit 7015896: Merge branch "alternate"
chenyingying01@cyy merge % git log --graph --pretty=oneline --abbrev-commit
*   b80e372 (HEAD -> master) Create commit 7015896: Merge branch "alternate"
|\
| * 8de3d40 (alternate) Add slternate line 5, 6
* | f0adb70 Add line 5 and line 6
* | 50fc402 Merge branch 'alternate'
|\|
| * 4fb8628 Add alternate's line 4
* | 608c235 Another file
|/
* 61570a2 Initial 3 line file
chenyingying01@cyy merge %

3. git diff in merge

在编程的过程中,提倡使用几个单独概念的,定义良好的提交进行merge,而不是等到最后一个大的庞大提交时再merge.
针对有冲突文件,git diff 命令的输出是 git diff HEAD 和git diff MERGE_HEAD 命令的结果的组合。

chenyingying01@cyy conflict % git diff
diff --cc hello
index e63164d,562080a..0000000
--- a/hello
+++ b/hello
@@@ -1,3 -1,3 +1,7 @@@hello
++<<<<<<< HEAD+worlds
++=======
+ world
++>>>>>>> altYay!
chenyingying01@cyy conflict % git diff HEAD
diff --git a/hello b/hello
index e63164d..1f2f61c 100644
--- a/hello
+++ b/hello
@@ -1,3 +1,7 @@hello
+<<<<<<< HEADworlds
+=======
+world
+>>>>>>> altYay!
chenyingying01@cyy conflict % git diff MERGE_HEAD
diff --git a/hello b/hello
index 562080a..1f2f61c 100644
--- a/hello
+++ b/hello
@@ -1,3 +1,7 @@hello
+<<<<<<< HEAD
+worlds
+=======world
+>>>>>>> altYay!

4. 废弃合并

# 1.before merge commit 将工作目录和索引还原到git merge命令前状态
git reset --hard HEAD
# 2.after merge commit 将工作目录和索引还原到git merge命令前状态
# ORIG_HEAD git 把原始分支的HEAD放在ORIG_HEAD中
git reset --hard ORIG_HEAD  
# 3.把冲突解决方案搞砸了,想要返回到冲突的原始状态
git checkout -m

5. 合并策略

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/444660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

elasticsearch的Linux下安装报错问题解决

1.启动报错如下: vim /etc/security/limits.conf 然后修改如下 * soft nofile 65536 * hard nofile 65536sudo vi /etc/pam.d/common-session 添加 session required pam_limits.so sudo vi /etc/pam.d/common-session-noninteractive 添加 session required pam_limits.so…

leetcode120. 三角形最小路径和

给定一个三角形&#xff0c;找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。 例如&#xff0c;给定三角形&#xff1a; [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径和为 11&#xff08;即&#xff0c;2 3 5 1 11&#xff0…

Elasticsearchan相关插件和工具安装

1、下载elasticsearch-head的源码包 地址&#xff1a;https://github.com/mobz/elasticsearch-head/releases 2、安装node运行环境 地址&#xff1a;https://nodejs.org/en/download/ 3、安装完node之后编译elasticsearch-head 执行npm install -g grunt-cli编译源码 执行…

Git(11)-cherry-pick、reset、rebase

更改提交&#xff0c;版本回退1.get reset 重置HEAD指针的指向2.git cherry-pick3.git revert4.git commit --amend修改提交5.git rebase 变基提交5.1 git rebase --onto5.2rebase 产生冲突&#xff0c;解决冲突/终止变基5.3git rebase -i6. rebase Vs mergegit 提供了【修改】…

Elasticsearch集群节点配置详解

注意&#xff1a;如果是在局域网中运行elasticsearch集群也是很简单的&#xff0c;只要cluster.name设置一致&#xff0c;并且机器在同一网段下&#xff0c;启动的es会自动发现对方&#xff0c;组成集群。 三、配置浅涉 elasticsearch的config文件夹里面有两个配置文件&#…

MongoDB修改器使用

欢迎关注我的新微信公众号 ipgame,有什么问题可以提供交流的平台,欢迎大家讨论。 对于文档的更新除替换外,针对某个或多个文档只需要部分更新可使用原子的更新修改器,能够高效的进行文档更新。更新修改器是中特殊的键, 用来指定复杂的操作,比如增加、删除或者调整键,还…

Git(12)-stash, reflog

git stash1. git stash2. reflog命令概览git stash save "WIP:xxxxx" # save后可以跟笔记&#xff0c;WIP:work in process git stash list # 查看存储状态栈的条目 git stash pop # 当前工作目录和索引还原至最近一次save操作的内容…

cmake生成Win64位工程

使用cmake编译64的dll 一开始使用cmake --build .来生成了dll&#xff0c;在导入到java项目中使用的时候&#xff0c;才发现是32位的。导致程序不能正常运行&#xff0c;报错如下&#xff1a; Exception in thread "main" java.lang.UnsatisfiedLinkError Cant load…

leetcode 106. 从中序与后序遍历序列构造二叉树

根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如&#xff0c;给出 中序遍历 inorder [9,3,15,20,7] 后序遍历 postorder [9,15,7,20,3] 返回如下的二叉树&#xff1a; 3 / \ 9 20 / \ 15 7 思路&#xff1a;和前…

Mat矩阵(图像容器)的创建及CV_8UC1,CV_8UC2等参数详解

一&#xff09;Mat矩阵(图像容器)创建时CV_8UC1,CV_8UC2等参数详解 1--Mat不但是一个非常有用的图像容器类,同时也是一个通用的矩阵类 2--创建一个Mat对象的方法很多 3--使用Mat图像容器类创建Mat类的对象 //! default constructor Mat(); //! constructs …

TensorFlow(1)-模型相关基础概念

TensorFlow-11.Graph对象2.Session对象3.Variabels变量4. placeholders与feed_dict5. tf.train.Saver() 模型参数保存、加载Tensorflow 中文官网教程–2.0版本的官方教程 TensorFlow教程&#xff1a;TensorFlow快速入门教程&#xff08;非常详细&#xff09; pytorch Vs tensor…

memcache的使用入门C++代码

下载源码编译&#xff0c;memcached就是生成的主程序&#xff0c;启动可指定端口&#xff0c;memcached作为server端&#xff0c;依然是我们熟悉的cs模式&#xff0c;使用两个client一个setkey&#xff0c;一个getkey一百万个做测试。 ./memcached -d -m 300 -p 11211 -u root…

leetcode78 子集

给定一组不含重复元素的整数数组 nums&#xff0c;返回该数组所有可能的子集&#xff08;幂集&#xff09;。 说明&#xff1a;解集不能包含重复的子集。 示例: 输入: nums [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 思路&…

Fiddler抓包工具使用

先下载Fiddler 欢迎关注我的新微信公众号 ipgame&#xff0c;有什么问题可以提供交流的平台&#xff0c;欢迎大家讨论。 电脑最好是笔记本&#xff0c;这样能和手机保持统一局域网内&#xff1b;其他不多说&#xff0c;直接说步骤了。 一.对PC&#xff08;笔记本&#xff0…

Tensorboard--模型可视化工具

Tensorboard1.tensorboard in tensorflow1.1 tensorboard的启动过程1.2 tf.summary 可视化类型1.3 tf.summary 使用demo2.tensorboard in pytorch2.1 SummaryWriter 使用demo12.2 tSummaryWriter 使用demo22.3 tensorboard 数据再读取tensorboard in tensorflow &#xff1a;te…

opencv findContours 报错_acrt_first_block == header

报错_acrt_first_block header 之前一直使用OpenCV3.3VS2015 void AOIAlgorithm::findUnits(Mat& blkGray, vector<vector<cv::Point>> & blkContours) {Mat blkOBW;blur(blkGray, blkGray, cv::Size(5, 5));threshold(blkGray, blkOBW, 0, 255, CV_THR…

TensorFlow(2)-训练数据载入

tensorflow 训练数据载入1. tf.data.Dataset2. dataset 创建数据集的方式2.1 tf.data.Dataset.from_tensor_slices()2.2 tf.data.TextLineDataset()2.3 tf.data.FixedLengthRecordDataset()2.4 tf.data.TFRecordDataset()3. dateset 迭代操作iterator3.1 make_one_shot_iterato…

leetcode66. 加一

给定一个由整数组成的非空数组所表示的非负整数&#xff0c;在该数的基础上加一。 最高位数字存放在数组的首位&#xff0c; 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外&#xff0c;这个整数不会以零开头。 示例 1: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入…

设备硬件加密方法

在机器视觉或者一些传统制造业行业里经常牵扯到软件加密算法,或者一些简单的加密,比如相机绑定,或者USB接口绑定之类的,那么针对这些硬件设备绑定加密方式,我这里简单的提供一个方法来实现: 方法很简单,从设备管理器里查找关心的USB设备,对比PID,VID和全球唯一标识GU…

addr2line 和 tombstone问题分析

做安卓开发的同学对于tombstone问题应该是很熟悉了,但是对于如何排查和分析值得总结和整理的,这篇文章对入门安卓开发的技术来说是个入门指导,同时对安卓开发的中高级开发也有借鉴。 首先我们来说下什么是tombstone : 当一个动态库(native 程序)开始执行时,系统会注册…