git log 没有办法单独查看当前分支上的 commit? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
0xABCD
V2EX    程序员

git log 没有办法单独查看当前分支上的 commit?

  •  
  •   0xABCD 2018-12-03 17:51:48 +08:00 via Android 6920 次点击
    这是一个创建于 2505 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景是平时分支之间经常互相合并,我想要单独看一下在当前分支上的 commits log,没有找到对应的子命令?倒是找到一个--no-merges 选项,但是它只能把合并代码时新生成的 merge commit 去掉,不能把从别的分支上 merge 过来的 commit 去掉

    12 条回复    2018-12-04 00:32:09 +08:00
    0xABCD
        2
    0xABCD  
    OP
       2018-12-03 19:16:54 +08:00 via Android
    @AlisaDestiny 感谢回复,我搜到过这个答案,跟我描述的不符,他答案中提到的两个分支没有合并过,他是从 master 切出来的分支,然后比如有 3 个提交,他想找出来的是这 3 个新增的提交,而我的问题是,两个互相合并过的分支怎样才能找出最初在本分支上的提交,不包含 merge 过来的。比如 A 分支有 commit a,B 分支有 commit b,现在他俩一合并,那么 A 分支就有了 commit b,这时我怎么才能只过滤出 commit a,即一开始就是在 A 分支的 commit
    dbolo123
        4
    dbolo123  
       2018-12-03 19:55:13 +08:00 via Android
    这样呢?假设有 b1,b2,b3 只看 b1 的,git log b1 ^b2 ^b3
    dbolo123
        5
    dbolo123  
       2018-12-03 19:57:59 +08:00 via Android
    @dbolo123 看错了,请忽略
    SoloCompany
        6
    SoloCompany  
       2018-12-03 23:17:18 +08:00
    > 两个互相合并过的分支怎样才能找出最初在本分支上的提交

    你是指这个?
    git log B..A
    0xABCD
        7
    0xABCD  
    OP
       2018-12-04 00:07:33 +08:00
    @hzwjz #3 仔细读完了你贴的链接,好像很接近我想要的了,我有个疑惑,这里的--first-parent 指的是哪个分支,假如有两个分支 dev 和 feature-1。有的时候是 feature-1 merge 到 dev,有的时候又是 dev merge 到 feature-1,那么 feature-1 分支上就会有这两种 merge commit (最终也会从 dev 拉到 feature-1 ),git 在这种情况下,--first-parent 应该指的是谁呢?
    0xABCD
        8
    0xABCD  
    OP
       2018-12-04 00:14:24 +08:00
    @SoloCompany #6 不是,你说的这个命令区分不出**已经相互合并**的两个分支的提交,因为两个分支的 commit 已经相同了,git log B..A 的意思是找出在 A 分支上但是不在 B 分支上的 commits
    SoloCompany
        9
    SoloCompany  
       2018-12-04 00:16:51 +08:00 via iPad
    那你可能想找的是 no-merges
    SoloCompany
        10
    SoloCompany  
       2018-12-04 00:20:25 +08:00 via iPad
    发早了,请忽略

    应该是说 first-parent
    所有的 merge parent 其实是有顺序的,你没有办法指定选择一个图里面的多条路径里面的一条,只能都选最左或最右
    0xABCD
        11
    0xABCD  
    OP
       2018-12-04 00:25:21 +08:00
    @SoloCompany #10 可是最左或者最右策略可能无法保证 first-parent 始终是同一个分支,那我只想看某个分支上的提交就无法实现了?
    SoloCompany
        12
    SoloCompany  
       2018-12-04 00:32:09 +08:00 via iPad
    你的理解就是错误的,一个分支的所有历史并不是线性的,而是多路径的,不存在你说的一个分支所对应的唯一路径

    a merge b 的结果是 c
    那么多 a 和 b 都同时属于 c 所在的分支,a 和 b 只有路径的区分(左还是右,或者说 1 还是 2 )
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5515 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 09:04 PVG 17:04 LAX 02:04 JFK 05:04
    Do have faith in what you're doing.
    ubao 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