git小技巧--如何从其他分支merge个别文件或文件夹

来源:互联网 发布:过山车大亨 mac 编辑:程序博客网 时间:2024/05/19 00:13

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

创建分支

功能分为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合并总结的经验,仅供参考,有错误请指出,谢谢!

阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 腹部照了x光片照了三次怎么办 像在工厂戴的静电帽弄丢了怎么办 诈骗犯把钱被转到别人账户怎么办 狗狗5个月在家随地大小便怎么办 上课放屁放的快没憋到老是放怎么办 丈夫有外遇并跟小三有一儿子怎么办 借款夫妻双亡借出去的钱怎么办? 橡胶底的劳保鞋开胶了怎么办? 求部队停止有偿服务内部超市怎么办 晋江买了全本还是有防盗章节怎么办 宝宝没有穿衣服的地方长疙瘩怎么办 詹姆斯士兵12魔术贴老是掉怎么办 手机版本不支持陌陌视频聊天怎么办 私人单位不给员工写收入证明怎么办 cad图形缩小后找不到图了怎么办 离婚了老婆嫁给了别人怎么办 对方开车撞伤人逃逸不赔钱怎么办 帮老板开车撞伤人老板不愿赔怎么办 我开车撞人现在伤者住院怎么办 B照驾驶证扣3分怎么办l 驾驶证被盗后被别人拿去消分怎么办 碰瓷的手碰我后视镜怎么办 摩托被盗监控录像器没有记录怎么办 车贷逾期车被贷款公司拖走了怎么办 发现邻居家小孩偷了我的钱该怎么办 孕晚期挺着大肚子好累怎么办 古墓丽影崛起东西满了怎么办 塞尔达传说大师剑耐久没了怎么办 冒险岛遇见超能力者全屏挂机怎么办 当危险来临时该怎么办作文400字 生气把孩子手掌内侧打肿了怎么办 驾驶证未满一年扣12分怎么办 在高速上超速百分之10以下怎么办 中兴手机重启死机开不了机怎么办 太胖了太自卑了该怎么办 儿子因为长的胖特别自卑怎么办? 苹果ld叫我检查身份信息怎么办 我家墙让对面给漂水了怎么办 如果你流落到荒岛上你会怎么办 手机迅雷下载版权方不给下载怎么办 白色有彩色花纹的衣服染色了怎么办