在实际工作中,一个大型的项目或版本迭代可能不是一次上线,可能会分好几次上线,这时候就会涉及创建多个分支,进行分别开发。

创建分支

功能分为2个分支,分别为A、B。

A上面有个列表页功能

B上面有个详情页功能,还有个系统消息功能

产品经理说先上列表功能,于是我们就开发A分支,列表功能很快开发完成。

第二天按常理开发B分支,开发到一半,产品经理说目前的系统消息功能需要急着上线,要和列表功能一起上线,当时就懵逼了,然后赶紧放下详情页的开发,立马去开发系统消息功能,开发完之后需要将列表功能和系统消息功能放在一个分支上提测,这时候分支合并就派上用场了。

合并分支

使用git merge 命令进行分支合并是通用的做法,但是git merge 合并的时候会将两个分支的内容完全合并,如果想合并一部分肯定是不行的。那怎么办?

如何从其他分支merge指定文件到当前分支,git checkout 是个合适的工具。

git checkout source_branch ...

强制合并

我们使用git checkout 将B分支上的系统消息功能添加到A分支上

$ git branch

* A

B

$ git checkout B message.html message.css message.js other.js

$ git status

# On branch A

# Changes to be committed:

# (use "git reset HEAD ..." to unstage)

#

# new file: message.css

# new file: message.html

# new file: message.js

# modified: other.js

#

合并完成

注意:在使用git checkout某文件到当前分支时,会将当前分支的对应文件强行覆盖

这里新增文件没问题,但是A分支上原有的other.js会被强行覆盖,如果A分支上的other.js有修改,在checkout的时候就会将other.js内容强行覆盖,这样肯定是不行的。如何避免不强制覆盖,往下看。

智能合并

1.使用git checkout 将根据A分支创建一个A_temp分支,避免影响A分支

$ git checkout -b A_temp

Switched to a new branch 'A_temp'

2.将B分支合并到A_temp分支

$ git merge B

Updating 1f73596..04627b5

Fast-forward

message.css | 0

message.html | 0

message.js | 0

other.js | 1 +

4 files changed, 1 insertion(+)

create mode 100644 message.css

create mode 100644 message.html

create mode 100644 message.js

3.切换到A分支,并使用git checkout 将A_temp分支上的系统消息功能相关文件或文件夹覆盖到A分支

$ git checkout A

Switched to branch 'A'

$ git checkout A_temp message.html message.css message.js other.js

$ git status

# On branch A

# Changes to be committed:

# (use "git reset HEAD ..." to unstage)

#

# new file: message.css

# new file: message.html

# new file: message.js

# modified: other.js

#

ok,完结,这是工作中使用git合并总结的经验,仅供参考,有错误请指出,谢谢!

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

  1. linux怎么全选文件内容,Linux小技巧之终端terminal全选

    当打开一个终端,经过若干指令后,终端上输出的内容较多,直接框选这些内容进行选择比较费事.有没有全选的功能呢?答案是有的! 方法1:终端菜单栏全选 当窗口比较小时,终端顶部是没有菜单选项的,此时只需要将 ...

  2. 知网CAJ文件内容复制小助手

    知网CAJ文件内容复制小助手,仅限可复制文献使用. 主要功能 (1)一键去空,去换行,去特殊字符 (2)去空的时候,检测英语,遍历相邻两位字符,判断是否字母+空,如果是字母+空,则不去空.否则去空 ...

  3. installshield安装文件的制作小技巧--附加数据库

    installshield安装文件的制作小技巧--附加数据库 最近又一个项目接近尾声,不过对方要求安装必须傻瓜化,尽量不用手动配置.于是就的重新捡起两三年没有用过的installshield了.找到 ...

  4. Linux命令删除find,浅谈Linux下通过find命令进行rm文件删除的小技巧

    我们经常会通过find命令进行批量操作,如:批量删除旧文件.批量修改.基于时间的文件统计.基于文件大小的文件统计等,在这些操作当中,由于rm删除操作会导致目录结构变化,如果要通过find结合rm的操作 ...

  5. Excel文件 实用操作小技巧

    Excel文件实用 操作小技巧 目录 1.为Excel文件 添加打开密码  审阅  - 保护工作簿 - 保护结构和窗口-输入密码点击确定 2.为Excel文件 添加作者信息 在Exce文件 图标上右键 ...

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

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

  7. git如何查看缓存区文件内容_GIT实操手册 —— 值得收藏的GIT常用命令字典

    目录git config 配置 git help 显示有关Git的帮助信息 git init 初始化 git add 将文件内容添加到暂存区 git clone 将存储库克隆到新目录中 git sta ...

  8. 禁止电脑移动某个指定文件_电脑小技巧-- 分享个简洁的系统清理工具

    电脑小技巧--电脑做无线热点 电脑小技巧--U盘坏了如何修复 电脑小技巧--自动维护计划.任务关闭.禁用 电脑小技巧--预防U盘中毒 电脑小技巧--提高U盘读写速度 电脑小技巧--调整引导高级选项加快 ...

  9. 本地修改远端 SAP UI5 框架文件的一个小技巧

    这是 Jerry 2021 年的第 64 篇文章,也是汪子熙公众号总共第 341 篇原创文章. Jerry 的前一篇文章 纪念特洛伊英雄 Sinon - SAP UI5 Mock Server 使用步 ...

最新文章

  1. STM32F103 与 STM32F407引脚兼容问题
  2. 11.Map集合之实现类HashMapHashtableTreeMapLinkedHashMapProperties浅析
  3. runtime objc_msgSend
  4. 来自法国的山寨苹果系统——梨子系统PearOS,精美仿苹果风格的免费Linux操作系统(颇有iOS和OSX的神...
  5. 互联网1分钟 |1219
  6. python将2个列表list合并到1个列表使用appenden_【新手入门】20个很实用的 Python 学习小技巧...
  7. java-jdk7新特性
  8. Android 6.0动态权限(转)
  9. Git基础学习(黑马程序员笔记)
  10. 技术升级成为Linux运维人前途的魔障,是跟进还是选择被淘汰?
  11. 入门用Python进行Web爬取数据:为数据科学项目提取数据的有效方法
  12. C# ip地址的查询
  13. 自助分析重新定义大宗商品交易
  14. 2022公司邮箱域名如何申请?公司邮箱域名怎么设置?
  15. 微信原生组件|基于小程序实现音视频通话
  16. Creo教程:如何使用SQLite在Creo中创建日记应用?
  17. C语言获取norflash大小,NOR Flash 编程
  18. cmw测试ble_如何测试CC2640的BLE射频指标(一)
  19. Python最新操作微信解决方案(附破解文件和代码)
  20. 有时间 多研究研究开源项目 必有收获

热门文章

  1. mysql数据库主从同步状态正常,无异常报错,数据不能同步
  2. 解决.gitgnore加入.idea无效问题
  3. 设计模式之: 装饰器模式
  4. C# 特性(Attribute)入门教程
  5. 文件包含和文件上传结合
  6. Swift之深入解析Xcode13对Swift对象生命周期的优化
  7. LeetCode Algorithm 22. 括号生成
  8. 已知线性表最多可能有20个元素,存储每个元素需要8字节,存储每个指针需要4字节。当元素个数为( )时使用单链表比使用数组存储此线性表更加节约空间。
  9. 2013\National _Java_A\3.埃及分数
  10. 大数据WEB阶段 Maven与SSM框架整合