找回密码
 立即注册
搜索
查看: 1033|回复: 8

[软件] 请教个 git 的使用问题,能在 merge 时排除指定的某些文件...

[复制链接]
     
发表于 2019-3-30 17:19 | 显示全部楼层 |阅读模式
本帖最后由 匿名用户 于 2019-3-30 17:30 编辑

使用场景是这样的:

master 分支下有:
a.txt
b.txt
其他文件

test 分支下有:
a.txt
b.txt
其他文件


两个分支下的 a.txt b.txt 有大量的不同内容不需要合并(但自身都有内容修改),而“其他文件”都需要从 test 分支合并到 master。

请问下这种情况下什么样的解决方案最好呢。

回复

使用道具 举报

发表于 2019-3-30 17:23 | 显示全部楼层
cherry-pick 能用么?
回复

使用道具 举报

发表于 2019-3-30 17:27 | 显示全部楼层
本帖最后由 Jet.Black 于 2019-3-30 17:29 编辑
  1. git merge --no-ff --no-commit TEST
  2. git reset HEAD A.txt
  3. git checkout -- A.txt
  4. git commit
复制代码


这样行不行?
回复

使用道具 举报

     
 楼主| 发表于 2019-3-30 17:29 | 显示全部楼层
Jet.Black 发表于 2019-3-30 17:23
cherry-pick 能用么?

我看了下 cherry-pick,貌似是用来指定 commit,而不是指定文件的?
回复

使用道具 举报

发表于 2019-3-30 17:30 | 显示全部楼层
匿名用户 发表于 2019-3-30 17:29
我看了下 cherry-pick,貌似是用来指定 commit,而不是指定文件的?

都混在一起那就看看3楼的方法行不行……
回复

使用道具 举报

     
发表于 2019-3-30 19:35 来自手机 | 显示全部楼层
在master上git merge —squash test 然后 reset 那两个文件  commit
回复

使用道具 举报

     
发表于 2019-4-5 08:14 来自手机 | 显示全部楼层
用checkout --ours啊
回复

使用道具 举报

     
发表于 2019-4-5 08:16 来自手机 | 显示全部楼层
q8571183 发表于 2019-4-5 08:14
用checkout --ours啊

先merge
然后git checkout - -ours -- a.txt
再commit
在git pro的高级合并里有提到过
回复

使用道具 举报

     
发表于 2019-4-5 11:40 | 显示全部楼层
就用3楼的方法就行了。
另外如果test需要持续合并到master的话,我的做法是把公共的部分放a.txt, 然后不同的部分master上建立b.txt c.txt,test分支上建d.txt e.txt
这样每次merge的时候diff方便一点。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-9-28 13:23 , Processed in 0.153596 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表