git merge 详细操作,看完就懂

[root@hostname git_test]# git init
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
Initialized empty Git repository in /root/git_test/.git/
[root@hostname git_test]# git log
fatal: your current branch 'master' does not have any commits yet
[root@hostname git_test]# vi test.txt
[root@hostname git_test]# git add .
[root@hostname git_test]# git commit "in main, 1st change"
error: pathspec 'in main, 1st change' did not match any file(s) known to git
[root@hostname git_test]# git commit -m "in main, 1st change"
[master (root-commit) 5c0420f] in main, 1st change
1 file changed, 1 insertion(+)
create mode 100644 test.txt
[root@hostname git_test]# git commit "in main, 1st change"^C
[root@hostname git_test]# vi test.txt
[root@hostname git_test]# git add .
[root@hostname git_test]# git commit -m "in main, 2nd change"
[master 16e9a53] in main, 2nd change
1 file changed, 1 insertion(+)
[root@hostname git_test]# gi tlog
bash: gi: command not found...
Similar command is: 'go'
[root@hostname git_test]# git log
commit 16e9a53302c804d3a0ad7924c45e00209c86c72f (HEAD -> master)
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:41:49 2023 -0400 in main, 2nd change commit 5c0420f6c5efb9c8b98c89b9d4595f15c3fbed9c
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:41:23 2023 -0400 in main, 1st change
[root@hostname git_test]# git checkout -b feature_1
Switched to a new branch 'feature_1'
[root@hostname git_test]# vi test.txt
[root@hostname git_test]# git add .
[root@hostname git_test]# git commit -m "after branching, in feature_1, 1st change"
[feature_1 11981bf] after branching, in feature_1, 1st change
1 file changed, 1 insertion(+)
[root@hostname git_test]# git checkout master
Switched to branch 'master'
[root@hostname git_test]# vi test.txt
[root@hostname git_test]# git add .
[root@hostname git_test]# git commit -m "after branching, in main, 1st change"
[master 129c297] after branching, in main, 1st change
1 file changed, 1 insertion(+)
[root@hostname git_test]# vi test.txt
[root@hostname git_test]# git add .
[root@hostname git_test]# git commit -m "after branching, in main, 2nd change"
[master 87d7da3] after branching, in main, 2nd change
1 file changed, 1 insertion(+)
[root@hostname git_test]# git checkout feature_1
Switched to branch 'feature_1'
[root@hostname git_test]# vi test.txt
[root@hostname git_test]# git add .
[root@hostname git_test]# git commit -m "after branching, in feature_1, 2nd change"
[feature_1 c170207] after branching, in feature_1, 2nd change
1 file changed, 1 insertion(+)
[root@hostname git_test]# git log
commit c170207b0567946eff71880ee90326ad64822b0b (HEAD -> feature_1)
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:46:46 2023 -0400 after branching, in feature_1, 2nd change commit 11981bffedb873679d73bdca89716f1b6cbc9f4d
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:42:58 2023 -0400 after branching, in feature_1, 1st change commit 16e9a53302c804d3a0ad7924c45e00209c86c72f
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:41:49 2023 -0400 in main, 2nd change commit 5c0420f6c5efb9c8b98c89b9d4595f15c3fbed9c
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:41:23 2023 -0400 in main, 1st change
[root@hostname git_test]# git checkout master
Switched to branch 'master'
[root@hostname git_test]# vi test.txt
[root@hostname git_test]# git add .
[root@hostname git_test]# git commit -m "after branching, in main, 3rd change"
[master 687068c] after branching, in main, 3rd change
1 file changed, 1 insertion(+)
[root@hostname git_test]# git log
commit 687068ce78e7f72326ecaec4c4d062139cd4d2c3 (HEAD -> master)
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:48:29 2023 -0400 after branching, in main, 3rd change commit 87d7da3f4a51f811a846451bb75f7f8ccbd7cca0
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:44:23 2023 -0400 after branching, in main, 2nd change commit 129c297f2ac32868f60a6cee4fc76970090648ab
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:43:46 2023 -0400 after branching, in main, 1st change commit 16e9a53302c804d3a0ad7924c45e00209c86c72f
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:41:49 2023 -0400 in main, 2nd change commit 5c0420f6c5efb9c8b98c89b9d4595f15c3fbed9c
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:41:23 2023 -0400 in main, 1st change
[root@hostname git_test]# git checkout feature_1
Switched to branch 'feature_1'
[root@hostname git_test]# git log
commit c170207b0567946eff71880ee90326ad64822b0b (HEAD -> feature_1)
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:46:46 2023 -0400 after branching, in feature_1, 2nd change commit 11981bffedb873679d73bdca89716f1b6cbc9f4d
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:42:58 2023 -0400 after branching, in feature_1, 1st change commit 16e9a53302c804d3a0ad7924c45e00209c86c72f
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:41:49 2023 -0400 in main, 2nd change commit 5c0420f6c5efb9c8b98c89b9d4595f15c3fbed9c
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:41:23 2023 -0400 in main, 1st change
[root@hostname git_test]# git merge master
Auto-merging test.txt
CONFLICT (content): Merge conflict in test.txt
Automatic merge failed; fix conflicts and then commit the result.
[root@hostname git_test]# vi test.txt
[root@hostname git_test]# git status
On branch feature_1
You have unmerged paths.
(fix conflicts and run "git commit")
(use "git merge --abort" to abort the merge) Unmerged paths:
(use "git add <file>..." to mark resolution)
both modified: test.txt no changes added to commit (use "git add" and/or "git commit -a")
[root@hostname git_test]# git add .
[root@hostname git_test]# git commit -m "merge main, fix conflict"
[feature_1 ed8959d] merge main, fix conflict git log shows all the commits from master branch and feature_1 branch are included
[root@hostname git_test]# git log
commit ed8959dd5f7c200c9e45e69a1804ecb83b3cf89e (HEAD -> feature_1)
Merge: c170207 687068c
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:54:42 2023 -0400 merge main, fix conflict commit 687068ce78e7f72326ecaec4c4d062139cd4d2c3 (master)
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:48:29 2023 -0400 after branching, in main, 3rd change commit c170207b0567946eff71880ee90326ad64822b0b
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:46:46 2023 -0400 after branching, in feature_1, 2nd change commit 87d7da3f4a51f811a846451bb75f7f8ccbd7cca0
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:44:23 2023 -0400 after branching, in main, 2nd change commit 129c297f2ac32868f60a6cee4fc76970090648ab
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:43:46 2023 -0400 after branching, in main, 1st change commit 11981bffedb873679d73bdca89716f1b6cbc9f4d
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:42:58 2023 -0400 after branching, in feature_1, 1st change commit 16e9a53302c804d3a0ad7924c45e00209c86c72f
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:41:49 2023 -0400 in main, 2nd change commit 5c0420f6c5efb9c8b98c89b9d4595f15c3fbed9c
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:41:23 2023 -0400 in main, 1st change [root@hostname git_test]# git diff 11981bffedb873679d73bdca89716f1b6cbc9f4d 129c297f2ac32868f60a6cee4fc76970090648ab
diff --git a/test.txt b/test.txt
index 0681d7f..4e4c571 100644
--- a/test.txt
+++ b/test.txt
@@ -1,3 +1,3 @@
in main, 1st change
in main, 2nd change
-after branching, in feature_1, 1st change
+after branching, in main, 1st change [root@hostname git_test]# git diff 11981bffedb873679d73bdca89716f1b6cbc9f4d 129c297f2ac32868f60a6cee4fc76970090648ab
diff --git a/test.txt b/test.txt
index 0681d7f..4e4c571 100644
--- a/test.txt
+++ b/test.txt
@@ -1,3 +1,3 @@
in main, 1st change
in main, 2nd change
-after branching, in feature_1, 1st change
+after branching, in main, 1st change [root@hostname git_test]# git rebase -i 16e9a53302c804d3a0ad7924c45e00209c86c72f
[detached HEAD d2b1d01] after branching, in feature_1, 1st change
Date: Fri Apr 21 22:42:58 2023 -0400
1 file changed, 2 insertions(+)
Auto-merging test.txt
CONFLICT (content): Merge conflict in test.txt
error: could not apply 129c297... after branching, in main, 1st change
Resolve all conflicts manually, mark them as resolved with
"git add/rm <conflicted_files>", then run "git rebase --continue".
You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 129c297... after branching, in main, 1st change in the pop up file:
pick 11981bf after branching, in feature_1, 1st change
s c170207 after branching, in feature_1, 2nd change
pick 129c297 after branching, in main, 1st change
pick 87d7da3 after branching, in main, 2nd change
pick 687068c after branching, in main, 3rd change # Rebase 16e9a53..ed8959d onto 16e9a53 (5 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup <commit> = like "squash", but discard this commit's log message
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# . create a merge commit using the original merge commit's
# . message (or the oneline, if no original merge commit was
# . specified). Use -c <commit> to reword the commit message.
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted. Conflict:
[root@hostname git_test]# vi test.txt
in main, 1st change
in main, 2nd change
<<<<<<< HEAD
after branching, in feature_1, 1st change
after branching, in feature_1, 2nd change
=======
after branching, in main, 1st change
>>>>>>> 129c297 (after branching, in main, 1st change) [root@hostname git_test]# git add .
[root@hostname git_test]# git rebase --continue
[detached HEAD d1ac649] after branching, in main, 1st change
1 file changed, 1 insertion(+)
Successfully rebased and updated refs/heads/feature_1. 再次git log, 发现merge 那次记录没有了?
[root@hostname git_test]# git log
commit 4c6b9d68e4312a61e36f4bb95cad64f080d11d13 (HEAD -> feature_1)
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:48:29 2023 -0400 after branching, in main, 3rd change commit fb2d8d2de1a02a1c3d930ec68f20ea6955cd6f8a
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:44:23 2023 -0400 after branching, in main, 2nd change commit d1ac6493ba37454002009bf92a83363220a68e09
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:43:46 2023 -0400 after branching, in main, 1st change commit d2b1d01d56705e26cc23a819c23e7a3d48c38104
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:42:58 2023 -0400 after branching, in feature_1, 1st change after branching, in feature_1, 2nd change commit 16e9a53302c804d3a0ad7924c45e00209c86c72f
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:41:49 2023 -0400 in main, 2nd change commit 5c0420f6c5efb9c8b98c89b9d4595f15c3fbed9c
Author: Shuai Ma <shuai.ma@hei-ya.com>
Date: Fri Apr 21 22:41:23 2023 -0400 in main, 1st change
[root@hostname git_test]# git diff 16e9a53302c804d3a0ad7924c45e00209c86c72f d2b1d01d56705e26cc23a819c23e7a3d48c38104
diff --git a/test.txt b/test.txt
index ff7d9a6..0a69e58 100644
--- a/test.txt
+++ b/test.txt
@@ -1,2 +1,4 @@
in main, 1st change
in main, 2nd change
+after branching, in feature_1, 1st change
+after branching, in feature_1, 2nd change
[root@hostname git_test]# git diff d2b1d01d56705e26cc23a819c23e7a3d48c38104 d1ac6493ba37454002009bf92a83363220a68e09
diff --git a/test.txt b/test.txt
index 0a69e58..3469806 100644
--- a/test.txt
+++ b/test.txt
@@ -2,3 +2,4 @@ in main, 1st change
in main, 2nd change
after branching, in feature_1, 1st change
after branching, in feature_1, 2nd change
+after branching, in main, 1st change
[root@hostname git_test]#
git merge 详细操作,看完就懂的更多相关文章
- 深度剖析HashMap的数据存储实现原理(看完必懂篇)
深度剖析HashMap的数据存储实现原理(看完必懂篇) 具体的原理分析可以参考一下两篇文章,有透彻的分析! 参考资料: 1. https://www.jianshu.com/p/17177c12f84 ...
- [转帖]Linux shell中2>&1的含义解释 (全网最全,看完就懂)
Linux shell中2>&1的含义解释 (全网最全,看完就懂) https://blog.csdn.net/zhaominpro/article/details/82630528 ...
- 2018前端面试总结,看完弄懂,工资少说加3K | 掘金技术征文
2018前端面试总结,看完弄懂,工资少说加3K | 掘金技术征文:https://juejin.im/post/5b94d8965188255c5a0cdc02
- git版本控制-详细操作
- git,软件帮助使用者进行版本的管理 阶段一git 命令: git init 初始化 git config --global user.email "you@example.com&qu ...
- 最全的前端Git基础命令,看完保证你会!
常见信息 master: 默认开发分支 origin:默认远程版本库 Head: 默认开发分支 Head^:Head 的父提交 创建新仓库 git init git init [project-nam ...
- java回调函数,看完就懂
java回调函数在网上了看了些例子,比较绕,不够清晰,自己写的一个例子比较通俗,java回调其实很简单. 举个例子我是类B,我有个方法叫b(),现在我要调用类A中的方法a(),写个代码就是: publ ...
- 看完肯定懂的 Java 字符串常量池指南
字符串问题可谓是 Java 中经久不衰的问题,尤其是字符串常量池经常作为面试题出现.可即便是看似简单而又经常被提起的问题,还是有好多同学一知半解,看上去懂了,仔细分析起来却又发现不太明白. 背景说明 ...
- 如何利用tox打造自动自动化测试框架,看完就懂
什么是toxtox官方文档的第一句话 standardize testing in Python,意思就是说标准化python中的测试,那是不是很适合测试人员来使用呢,我们来看看他究竟是什么? 根据官 ...
- 看完就懂--CSS选择器优先级的计算
CSS选择器优先级的计算 什么是选择器的优先级 优先级的计算与比较(一) - 优先级具有可加性 - 选择器优先级不会超过自身最大数量级 - 同等优先级情况下,后写的覆盖前写的 - 并集选择器之间的优先 ...
- NB-IoT的DRX、eDRX、PSM三个模式怎么用?通俗解释,看完就懂!
面我们讲了不少NB-IOT的应用.软件和硬件设计的变动. (链接在文章末尾). 今天讲讲NB-IoT的三大模式,在各种物联网和智能硬件场景中的使用方法 DRX.eDRx.PSM是什么? DRX虽然叫做 ...
随机推荐
- KubeCube 新增版本转换:K8s 尝鲜再也不用担心影响老版本了
多租户可视化 K8s 管理平台KubeCube近日迎来了新版本的发布,新版本增加了 K8s 版本转化.HNC GA 版本适配.审计信息国际化.warden 主动上报模式,为集群和项目设置 Ingres ...
- [oeasy]python0115_西里尔字符集_Cyrillic_俄文字符编码_KOI_8859系列
各语言字符编码 回忆上次内容 上次回顾了 非ascii的拉丁字符编码的进化过程 0-127 是 ascii 的领域 西欧.北欧语言 大多使用 拉丁字符 由iso组织 制定iso-8859-1 ...
- [oeasy]python0012_字符_character_chr函数_根据序号得到字符
字符(character) 回忆上次内容 上次了解了ord函数 这个函数可以通过字符得到序号 那么可以反过来吗? 通过序号得到字符可以吗? 编辑 ord的逆运算chr 有来就有回 编辑 好 ...
- WCF异常System.ServiceModel.ProtocolException问题处理
现象: 最近遇到了WCF 服务无法调用的错误,异常如下. System.ServiceModel.ProtocolException, System.ServiceModel, Version=4.0 ...
- 数据分析应该掌握的知识及SQL技能
一.概念及常识 1.数据分析必备的统计学知识 描述统计学 1.平均值.中位数.众数 2.方差.标准差 3.统计分布:正态分布.指数分布.二项分布.卡方分布 推论统计学 1.假设检验 2.置信区间 3. ...
- 分析C语言程序
1 #include <stdio.h> 2 int main() 3 { 4 puts("C语言"); 5 return 0; 6 } 函数的概念 C语言提供了很多功 ...
- RHCA rh442 001 调优本质 调优方法 监控
调优是一种感知 调优按照成本和性能 一.架构及调优 二.代码及调优 三.配置类调优 从调优效果和成本成正比 设计电商,日访问百万级,未来可能千万级 数据库 系统 服务器多少台 缓存 appache,n ...
- vue-puzzle-vcode与vue-drag-verify纯前端的拼图人机验证、右滑拼图验证
转载作品!以获取原作者允许,原文地址,感觉写的比较全面,也比较实用,大家可以去看看原文章: 纯前端的拼图人机验证.右滑拼图验证 1.vue-puzzle-vcode github地址:https:// ...
- 【Vue】el-select 数据过多替代方案
一.需求问题: 一开始就考虑使用简单el-select选取数据,但是后面数据量增多, 超过一千条开始,组件会很卡不好用,第二个是接口也慢了 数据量多的话是有一个filterable做支持了,可以输入关 ...
- 【MySQL】拆分经纬度字段
数据结构: 表中一字段存储经度和纬度: +---------------------------+ | INSTALL_LOLA_NUM | +---------------------------+ ...