文章目录

  • 一、环境准备
  • 二、创建新分支应用 dev2 提交
  • 三、git cherry-pick 冲突处理

一、环境准备


git cherry-pick 命令的作用是 将指定的 一个或若干个 提交记录 , 应用与当前的分支 ;

创建一个 dev 分支 , 然后在该分支中 , 编辑 file1.txt 文件 , 分别添加 444 行 文本 , 每行都提交一次 ;

执行

git reflog

查看 444 次提交的哈希码 :

D:\Git\git-learning-course>git reflog
29206c6 (HEAD -> dev) HEAD@{0}: commit: dev4
31914ab HEAD@{1}: commit: dev3
cc5fe50 HEAD@{2}: commit: dev2
f12e2d3 HEAD@{3}: commit: dev1
2bd4156 (origin/master, origin/HEAD, master) HEAD@{4}: checkout: moving from master to dev
2bd4156 (origin/master, origin/HEAD, master) HEAD@{5}: clone: from https://codechina.csdn.net/han12020121/git-learning-course

二、创建新分支应用 dev2 提交


执行

git switch master

命令 , 切换换到 master 分支 , 将 dev 分支中的 dev1 提交 , 作为当前分支的最新的提交内容 ;

f12e2d3 HEAD@{3}: commit: dev1

执行

git cherry-pick f12e2d3

命令 , 正式将 dev1 提交作为当前 master 分支的内容 ; 该操作没有冲突 , 可以直接执行 ;

D:\Git\git-learning-course>git switch master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.D:\Git\git-learning-course>
D:\Git\git-learning-course>git cherry-pick f12e2d3
[master 2321849] dev1Date: Thu Dec 9 20:58:46 2021 +08001 file changed, 3 insertions(+), 1 deletion(-)D:\Git\git-learning-course>

三、git cherry-pick 冲突处理


在 dev 分支中 , 执行

git switch -c dev_1

命令 , 直接基于 dev 分支创建新的分支 dev_1 , 注意此时的 dev 分支有 444 个提交 , dev_1 也有 444 个提交 ;

执行

git cherry-pick f12e2d3

命令 , 将 f12e2d3 提交作为当前 dev_1 分支的当前提交内容 , 此处出现了冲突 ;

f12e2d3 提交记录的内容 :

f12e2d3 HEAD@{3}: commit: dev1

执行过程 :

D:\Git\git-learning-course>git cherry-pick f12e2d3
Auto-merging file1.txt
CONFLICT (content): Merge conflict in file1.txt
error: could not apply f12e2d3... dev1
hint: After resolving the conflicts, mark them with
hint: "git add/rm <pathspec>", then run
hint: "git cherry-pick --continue".
hint: You can instead skip this commit with "git cherry-pick --skip".
hint: To abort and get back to the state before "git cherry-pick",
hint: run "git cherry-pick --abort".

冲突文件内容 :

hello world
hello worldgit branch dev<<<<<<< HEAD
devdev2dev3dev4
=======
dev
>>>>>>> f12e2d3 (dev1)

手动解决冲突 , 然后编辑为 :

hello world
hello worldgit branch devdev

先执行

git add .

命令, 提交该文件到暂存区 , 然后执行

git cherry-pick --continue

命令 , 继续执行 git cherry-pick 命令后续操作 , 期间会弹出 vim 编辑器 , 输入提交内容 ;

D:\Git\git-learning-course>git cherry-pick --continue
[dev_1 301c619] dev1Date: Thu Dec 9 20:58:46 2021 +08001 file changed, 6 deletions(-)D:\Git\git-learning-course>

【Git】Git 分支管理 ( 使用 git cherry-pick 命令提取提交记录应用于当前分支 | 创建新分支应用某个提交 | git cherry-pick 冲突处理 )相关推荐

  1. 如何从标签创建新分支?

    本文翻译自:How to create a new branch from a tag? I'd like to create a new master branch from an existing ...

  2. github创建新分支,并上传代码

    自己从github上下载了某个工程,对代码进行修改了之后如果不想合并到main分支,可以创建一个新的分支,然后把新的代码上传到分支上.命令如下 git branch -a#查看分支 git check ...

  3. git 从远程主服务器当中创建新分支

    现有版本; h20, h28,h26,i8 h28,h26,i8是从H20下面创建的. 需求: 从H28下面创建新分支继续开发. 思路: 所有代码均是放置到H20上仓库当中,首先下载H20完整仓库,也 ...

  4. git关联远程仓库+在github上创建新分支

    1.通过命令 git init 把这个目录变成git可以管理的仓库 git init 2.使用命令 git add .    添加到暂存区里面 3.用命令 git commit -m '注释'   把 ...

  5. git 创建新分支,合并分支等问题

    一.背景 正常公司的开发,都需要把线上的和开发的项目分开.就比如开发APP,那么当我们发布1.0稳定版本之后,我们就应该新建个online分支,然后让线上的项目指向该分支.同时呢,我们在master分 ...

  6. Git创建新分支并提交到github

    前言 因为需求的变更,需要把原来的代码做一下备份,再进行下一步的开发,所以 这是就将原来的代码创建一个新的分支来保存原来的代码,以防后面需要回滚,这里记录一下操作的步骤 第一步:可以先查看一下当前所在 ...

  7. git从某个分支创建新分支

    如题,记录一下从某个分支创建新分支的方法. 如从dev分支创建一个test分支 第一种:纯命令行的方式 第一步,切换到你指定的分支 如我要从dev上拉一个分支,代码一模一样 git checkout ...

  8. Github 创建新分支

    一.clone Repository clone Github 上的Repository,如下: git clone git@github.com:FBing/design-patterns.git ...

  9. TortoiseGit- 创建本地新分支,提交推送到远程,本地新分支合并到工作分支,提交到远程工作分支等。...

    整体思路: 创建本地新分支 (create branch)  -- 切换到本地新分支工作 (switch/checkout) --提交修改 (commit)  -- 推送到远程新分支 (push)  ...

最新文章

  1. JAVA-JSP Scriptlets(JSP小脚本)
  2. P5025-[SNOI2017]炸弹【tarjan,线段树优化建图】
  3. 作者:王亚楠(1988-),男,中国科学院昆明植物研究所科学数据库管理员
  4. 《论文笔记》COVINS: Visual-Inertial SLAM for Centralized Collaboration
  5. 爱着你,恨着你——BCGControlBar的Menu字体
  6. pythonjam教程_Python学习:安装配置pycharm编辑器教程
  7. BUNUO自动化框架图
  8. 使用base64:url 来定义背景图片url
  9. 用NextResult方法取得多个Result Set
  10. 新浪微博api的使用
  11. 数据结构实验一 顺序表的插入、删除
  12. zemax输出ies_基于ZEMAX的光学设计教程(第2版)
  13. RTI -- 实时中断
  14. oracle将两个时间相减_oracle 两个时间相减
  15. 免费云服务器+免费虚拟主机推荐
  16. android usb 以太网,如何在Android智能手机上通过USB-OtG使用连接USB的有线以太网适配器?...
  17. 【VUE-编辑回显】
  18. MATLAB中clf函数
  19. 语音视频自动生成字幕在线工具介绍
  20. (建议收藏)服务器宕机了不要慌,这样排查效率高

热门文章

  1. 【kAriOJ】离散数学春季学期编程测试 1
  2. HDU ACM 1065 I Think I Need a Houseboat
  3. dhcp 中继代理配置方法
  4. Puppet集中配置管理系统[安装与配置]
  5. python-函数进阶
  6. 读书方法(如果努力有用的话,那还要天才干什么!)
  7. ELF Format 笔记(十三)—— 段权限
  8. hadoop中NameNode、DataNode和Client三者之间协作关系及通信方式介绍
  9. C# random helper class
  10. 如何在64位win7下通过ODAC来访问Oracle服务器