经常被问到如何从一个分支合并特定的文件到另一个分支。其实,只合并你需要的那些commits,不需要的commits就不合并进去了。

  • 合并某个分支上的单个commit

首先,用git log或sourcetree工具查看一下你想选择哪些commits进行合并,例如:

比如feature 分支上的commit 82ecb31 非常重要,它含有一个bug的修改,或其他人想访问的内容。无论什么原因,你现在只需要将82ecb31 合并到master,而不合并feature上的其他commits,所以我们用git cherry-pick命令来做:

git checkout master
git cherry-pick 82ecb31

这样就好啦。现在82ecb31就被合并到master分支,并在master中添加了commit(作为一个新的commit)。cherry-pick 和merge比较类似,如果git不能合并代码改动(比如遇到合并冲突),git需要你自己来解决冲突并手动添加commit。

这里git cherry-pick每次合并过来会显示文件冲突(其实并没有冲突代码部分,只需手动解决既可)

  • 合并某个分支上的一系列commits

在一些特性情况下,合并单个commit并不够,你需要合并一系列相连的commits。这种情况下就不要选择cherry-pick了,rebase 更适合。还以上例为例,假设你需要合并feature分支的commit76cada ~62ecb3 到master分支。

首先需要基于feature创建一个新的分支,并指明新分支的最后一个commit:

git checkout featuregit
git checkout -b newbranch 62ecb3

然后,rebase这个新分支的commit到master(--ontomaster)。76cada^ 指明你想从哪个特定的commit开始。

git rebase --ontomaster 76cada^ 

得到的结果就是feature分支的commit 76cada ~62ecb3 都被合并到了master分支。

另外如果只想将feature分支的某个文件f.txt合并到master分支上。
1: git checkout master
2: git checkout --patch feature f.txt
第一个命令: 切换到feature分支;
第二个命令:合并feature分支上f文件到master分支上,将feature分支上 f 文件追加补丁到master分支上 f文件。你可以接受或者拒绝补丁内容。即提示输y或者n

如果只是简单的将feature分支的文件f.txt copy到master分支上;

git checkout master
git checkout feature f.txt

如果只是简单的将A_branch分支的文件f.txt copy到B_branch分支上;    
git checkout B_branch
cd path/to/f.txt
git checkout A_bracn  f.txt

转载于:https://www.cnblogs.com/wangcp-2014/p/10101468.html

git合并指定文件到另一分支相关推荐

  1. git如何合并指定文件内容_Git合并指定文件到另一个分支

    经常被问到如何从一个分支合并特定的文件到另一个分支.其实,只合并你需要的那些commits,不需要的commits就不合并进去了. 合并某个分支上的单个commit 首先,用git log或sourc ...

  2. Git合并指定commits到另一个分支

    场景 有时候我们在多分支并行开发时,经常碰到开发分支的bugfix需要合入之前的版本或其他分支中.有时候你需要这样做,只合并你需要的那些commits,不需要的commits就不合并进去了. 处理办法 ...

  3. IDEA,git单个指定文件分支间合并

    IDEA,git单个指定文件分支间合并 目录 一.IDEA分支树上分别选择分支 二.选择有差异要合并的文件,Get from Branch操作 三.合并完成后,执行commit,push 一.IDEA ...

  4. Git合并单个文件和[y,n,q,a,d,/,K,j,J,g,e,?]

    Git合并单个文件和[y,n,q,a,d,/,K,j,J,g,e,?] 前言 今天想要合并两个分支的同一个文件,查了网上一些资料,将A分支的a文件合并到B分支的a文件上.可以通过以下方式合并 git ...

  5. git如何合并指定文件内容_git小技巧--如何从其他分支merge个别文件或文件夹

    在实际工作中,一个大型的项目或版本迭代可能不是一次上线,可能会分好几次上线,这时候就会涉及创建多个分支,进行分别开发. 创建分支 功能分为2个分支,分别为A.B. A上面有个列表页功能 B上面有个详情 ...

  6. git 提交指定文件

    1. git status -s --查看仓库状态 2. git add +文件名 --添加需要提交的文件名(加路径--参考git status 打印出来的文件路径) 3. git stash -u ...

  7. python3指定目录所有excel_Python——合并指定文件夹下的所有excel文件

    前提:该文件夹下所有文件有表头且具有相同的表头. import glob # 同下 from numpy import * #请提前在CMD下安装完毕,pip install numppy impor ...

  8. git 导出指定文件的所有commits

    多个补丁一个文件: git format-patch -提交个数 --stdout -- drivers/staging/wlags49_h2/>../wlags49_patches/all.p ...

  9. Git合并特定commits 到另一个分支

    合并某个分支上的单个commit 首先,用git log或GitX工具查看一下你想选择哪些commits进行合并,例如: dd2e86 - 946992 -9143a9 - a6fd86 - 5a60 ...

最新文章

  1. Spring IOC实现
  2. lda 吗 样本中心化 需要_机器学习 —— 基础整理(四):特征提取之线性方法——主成分分析PCA、独立成分分析ICA、线性判别分析LDA...
  3. android qq空间 sdk,Android中使用腾讯的SDK完成分享图文到qq空间
  4. 【转】EL表达式 (详解) .
  5. shell脚本的作用
  6. BestCoder15 1002.Instruction(hdu 5083) 解题报告
  7. 滴滴章文嵩:一个人的 20 年开源热情和国内互联网开源运动
  8. “衰亡”的雅虎:30 亿用户账号全部泄漏还能怎么活?
  9. linux关闭网卡休眠_CentOS_Linux常用实用指令整理三:高级指令
  10. 2013腾讯实习生面试经历
  11. 【笔记】underfined和null
  12. linux下doc转docx
  13. Tomcat和Was服务器中文乱码问题总结
  14. strcmp函数的两种实现
  15. 快速从入门到精通!成都java培训机构比较
  16. tpshop开发手册
  17. maya2020卸载不干净安装不了_maya2020卸载不干净_maya怎样卸载干净,如何完全彻底删除清理干净MAYA各种残留注册表和文件?......
  18. HTML页面跳转后返回原页面,H5跳转链接之后,返回原界面
  19. 图解大数据 | Hive搭建与应用@实操案例
  20. R_leaflet包_最易上手地图教程(一)(下)

热门文章

  1. 运行Python程序的2种方式
  2. c++11 Type Alias
  3. 从字母数字字符串中提取数字
  4. Struts2与FreeMarker整合
  5. Camel中的几个重要概念之Routes, RouteBuilders 和 Java DSL
  6. Hibernate本地SQL查询SQLQuery
  7. vue计算属性的缓存和方法调用的有什么区别?
  8. 个人总结:性能测试常见问题案例与原因
  9. 水晶报表-横向设计页面,设置网格高度
  10. c++ 或者 vc++中判断程序实例是否运行