如何获取 git merge 合并的两个分支的公共代码变更集 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
Cink
V2EX    git

如何获取 git merge 合并的两个分支的公共代码变更集

  •  1
     
  •   Cink 2020-03-21 12:08:51 +08:00 2548 次点击
    这是一个创建于 2082 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小菜鸡一枚 求教一个 git 问题

    我用 git merge 合并了两个开发分支,然后获取 LOG 日志文件,通过 sed 处理得到的 merge 的代码变更集清单,此清单中既包括两个分支共同修改过的代码文件,也包括只有被合并分支改过的代码文件,现在我想只获取到公共部分的代码变更集,即在两个分支上都被修改过的文件(无论 git merge 操作是否产生冲突),有什么手段可实现么。

    git checkout dev-A git checkout dev-B git merge dev-A &> LOG 

    示意图如下。 mmexport1584723577937.jpg 在 stackoverflow 上也提了个问题。 https://stackoverflow.com/questions/60778476/how-can-i-get-the-program-name-list-of-codes-which-changed-both-in-two-branches

    第 1 条附言    2020-03-21 12:49:08 +08:00

    这个是我 LOG 日志的内容,我会用 sed 来处理

    LOG :

    twd-place: Updating c6157fg..8eceqaa Fast-forward pom.xml | 223 +++++++++++---------- .../auto/srf/place/PlaceAutoServiceImpl.java | 26 ++- .../auto/srf/place/srf_auto_place.xml | 23 ++- twd-head: Updating 082a5cd..cr2dedc Fast-forward pom.xml | 26 +- .../gather/Gather.java | 44 ++- Auto-merging src/main/scripts/TWD.properties CONFLICT (content): Merge conflict in src/main/scripts/TWD.properties Auto-merging src/main/resources/com/twd/head/config/discovery.xml CONFLICT (content): Merge conflict in src/main/resources/com/twd/head/config/discovery.xml 

    处理完以后会是这样的内容,就是我需要的程序变更清单了。

    LOG :

    twd-place: pom.xml .../auto/srf/place/PlaceAutoServiceImpl.java .../auto/srf/place/srf_auto_place.xml twd-head: pom.xml .../gather/Gather.java src/main/scripts/TWD.properties src/main/resources/com/twd/head/config/discovery.xml 

    比如.../auto/srf/place/PlaceAutoServiceImpl.java 这个文件是只在 dev-A 分支上做了修改,dev-B 分支上没有修改,我就需要在清单里把它删除,只留下两个分支上都修改过的程序文件名称。

    4 条回复    2020-03-23 08:50:16 +08:00
    momocraft
        1
    momocraft  
       2020-03-21 12:25:14 +08:00
    **获取文件** 是什么意思 文件名?

    grep -f <(git diff --name-only BASE dev-A) <(git diff --name-only BASE dev-B)

    这样可吗?
    Cink
        2
    Cink  
    OP
       2020-03-21 12:46:45 +08:00 via Android
    这个是我 LOG 日志的内容,我会用 sed 来处理
    ---
    `LOG` :
    ```
    twd-place:
    Updating c6157fg..8eceqaa
    Fast-forward
    pom.xml | 223 +++++++++++----------
    .../auto/srf/place/PlaceAutoServiceImpl.java | 26 ++-
    .../auto/srf/place/srf_auto_place.xml | 23 ++-

    twd-head:
    Updating 082a5cd..cr2dedc
    Fast-forward
    pom.xml | 26 +-
    .../gather/Gather.java | 44 ++-

    Auto-merging src/main/scripts/TWD.properties
    CONFLICT (content): Merge conflict in src/main/scripts/TWD.properties
    Auto-merging src/main/resources/com/twd/head/config/discovery.xml
    CONFLICT (content): Merge conflict in src/main/resources/com/twd/head/config/discovery.xml
    ```
    ---
    处理完以后会是这样的内容,就是我需要的程序变更清单了。
    ---
    `LOG` :
    ```
    twd-place:
    pom.xml
    .../auto/srf/place/PlaceAutoServiceImpl.java
    .../auto/srf/place/srf_auto_place.xml

    twd-head:
    pom.xml
    .../gather/Gather.java
    src/main/scripts/TWD.properties
    src/main/resources/com/twd/head/config/discovery.xml
    ```
    ---
    比如.../auto/srf/place/PlaceAutoServiceImpl.java 这个文件是只在 dev-A 分支上做了修改,dev-B 分支上没有修改,我就需要在清单里把它删除,只留下两个分支上都修改过的程序文件名称。
    Cink
        3
    Cink 
    OP
       2020-03-21 12:50:34 +08:00
    @momocraft 已更新问题描述
    Cink
        4
    Cink  
    OP
       2020-03-23 08:50:16 +08:00 via Android
    。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3311 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 11:45 PVG 19:45 LAX 03:45 JFK 06:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86