git小技巧--如何从其他分支merge个别文件或文件夹
来源:互联网 发布:西宁数据工程师招聘 编辑:程序博客网 时间:2024/05/19 02:16
在实际工作中,一个大型的项目或版本迭代可能不是一次上线,可能会分好几次上线,这时候就会涉及创建多个分支,进行分别开发。
创建分支
功能分为2个分支,分别为A、B。
A上面有个列表页功能
B上面有个详情页功能,还有个系统消息功能
产品经理说先上列表功能,于是我们就开发A分支,列表功能很快开发完成。
第二天按常理开发B分支,开发到一半,产品经理说目前的系统消息功能需要急着上线,要和列表功能一起上线,当时就懵逼了,然后赶紧放下详情页的开发,立马去开发系统消息功能,开发完之后需要将列表功能和系统消息功能放在一个分支上提测,这时候分支合并就派上用场了。
合并分支
使用git merge 命令进行分支合并是通用的做法,但是git merge 合并的时候会将两个分支的内容完全合并,如果想合并一部分肯定是不行的。那怎么办?
如何从其他分支merge指定文件到当前分支,git checkout 是个合适的工具。
git checkout source_branch <path>...
强制合并
我们使用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 <file>..." 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_tempSwitched to a new branch 'A_temp'
2.将B分支合并到A_temp分支
$ git merge BUpdating 1f73596..04627b5Fast-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 ASwitched 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 <file>..." to unstage)## new file: message.css# new file: message.html# new file: message.js# modified: other.js#
ok,完结,这是工作中使用git合并总结的经验,仅供参考,有错误请指出,谢谢!
- git小技巧--如何从其他分支merge个别文件或文件夹
- git小技巧--如何从其他分支merge个别文件或文件夹
- Git小技巧:如何从其他分支merge个别文件
- git从远程clone其他分支
- git merge commitId 把其他分支的某次提交merge进该分支
- git 下如何把另外一个分支的某个文件改动merge 合并到这个分支,而不是把整个分支merge过来
- [问题]Git中如何忽略文件或文件夹
- git忽略文件夹或文件
- 如何从文件夹中读取或存储文件
- git merge分支
- git merge分支
- git 分支 和merge
- git merge 合并分支
- git merge-分支操作
- git rebase & merge 将其他分支的修改合并到当前分支
- 从Git仓库中恢复已删除的分支、文件或丢失的commit
- 从Git仓库中恢复已删除的分支、文件或丢失的commit
- 从Git仓库中恢复已删除的分支、文件或丢失的commit
- easyinstall、pip、numpy、scipy、pandas安装
- C++ list类存储结构体
- acm_线性表操作
- javascript 垃圾回收机制 小结
- Masonry比例用法
- git小技巧--如何从其他分支merge个别文件或文件夹
- 资源访问工具类
- windows git 安装
- windows下用cmd命令netstat查看系统端口使用情况
- WmiPrvSE占用CPU过多的问题
- php后台图书管理系统-登录页面02
- 基础知识—函数-函数参数及返回值
- Java 小例子:读取控制台的用户输入
- applicationContext.xml约束