git 如何不显示 merge branch xx into xx 的记录 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
yujianwjj
V2EX    git

git 如何不显示 merge branch xx into xx 的记录

  •  
  •   yujianwjj 2023-10-23 09:45:11 +08:00 3611 次点击
    这是一个创建于 786 天前的主题,其中的信息可能已经有所发展或是发生改变。

    remote 的 develop 分支,经过 merege request 之后,commit: xx 历史记录里面会有两条,一条是本身的 commit 记录,还有一条是 merge branch feature_x into deveop 的记录。

    如何去掉 merge branch feature_x into deveop 这个 commit 记录?

    27 条回复    2023-10-23 20:23:40 +08:00
    virusdefender
        1
    virusdefender  
       2023-10-23 09:46:26 +08:00
    用 rebase ,gitlab 之类的都有选项可以调
    vincent20
        2
    vincent20  
       2023-10-23 09:47:03 +08:00
    rebase
    virusdefender
        3
    virusdefender  
       2023-10-23 09:47:08 +08:00
    gitlab 的选项

    Merge method
    Determine what happens to the commit history when you merge a merge request. How do they differ?

    Merge commit
    Every merge creates a merge commit.

    Merge commit with semi-linear history
    Every merge creates a merge commit.
    Merging is only allowed when the source branch is up-to-date with its target.
    When semi-linear merge is not possible, the user is given the option to rebase.

    Fast-forward merge
    No merge commits are created.
    Fast-forward merges only.
    When there is a merge conflict, the user is given the option to rebase.
    MENGKE
        4
    MENGKE  
       2023-10-23 09:49:07 +08:00
    git merge xxx --no-ff
    MENGKE
        5
    MENGKE  
       2023-10-23 09:49:41 +08:00
    @MENGKE 不好意思看错问题了
    Plutooo
        6
    Plutooo  
       2023-10-23 09:50:02 +08:00
    rebase + 1
    DOOMS
        7
    DOOMS  
       2023-10-23 09:59:13 +08:00
    rebase
    0x2CA
        8
    0x2CA  
       2023-10-23 10:01:44 +08:00
    对于 git 的操作应该是 merge 而不是 rebase ,对于任何的操作应该都需要记录,如果你使用 rebase ,实际上你操作了,提交的 commit 不一定是你要提交的,想退回会比较困难,如果你不想要看见这样的记录,可以自定义 commit 信息,但是一定要有这个 commit
    wu67
        9
    wu67  
       2023-10-23 10:15:41 +08:00
    git log --no-merges
    victimsss
        10
    victimsss  
       2023-10-23 10:37:24 +08:00
    虽然平常都是 rebase ,然而我更喜欢 merge 的做法。
    zxf4399
        11
    zxf4399  
       2023-10-23 10:48:47 +08:00
    git merge --ff-only <branch>
    pkoukk
        12
    pkoukk  
       2023-10-23 10:49:13 +08:00
    多人协作的时候,这条 merge 记录是有意义的,它代表由谁审核过了这个 merge ,并允许合并的
    例如,开发这个项目的有 2 个 maintainer A ,B ,功能由 developer C 开发
    那合并记录就能看出来,功能的 commit 是 C 做的,如果 merge commit 是 A ,说明是 A review 之后合进来的
    shawndev
        13
    shawndev  
       2023-10-23 10:52:30 +08:00
    --ff-only
    superchijinpeng
        14
    superchijinpeng  
       2023-10-23 10:54:00 +08:00 via iPhone
    fast forward
    adoni
        15
    adoni  
       2023-10-23 10:55:00 +08:00
    在本地使用 rebase
    在远端(网页上 merge 的时候)使用 fastforward
    adoni
        16
    adoni  
       2023-10-23 10:55:48 +08:00
    @0x2CA 这个还是看不同的开发模式,主干开发不一定需要这样
    unco020511
        17
    unco020511  
       2023-10-23 14:19:07 +08:00
    sycwiki
        18
    sycwiki  
       2023-10-23 14:26:54 +08:00
    rebase/cherry-pick
    nothingistrue
        19
    nothingistrue  
       2023-10-23 14:27:30 +08:00
    merge branch xx into xx 是一条正式 Git 提交,你要是去了,你会被打死,谨记。
    nothingistrue
        20
    nothingistrue  
       2023-10-23 14:50:20 +08:00
    如果你不想让出现 merge branch feature_x into deveop 的提交,那么你需要调整的是修改 merege request 的执行合并的方式,让起实质上只能是压缩提交,或者快速合并。但之前已经做过的,是不能改的。

    压缩提交方式,会将待合并分支的所有提交先压缩成一个提交,一般不建议这么做,严重丢失历史。

    快速合并有前提的,两个分支开叉的地方,必须是主分支的 Head ,即实际上主分支原地没动,只有待合并分支生成了新内容。要么你需要外部限定一次只能有一个开发分支(这就不存在分布式开发了,实际上连 SVN 都不算,直接回到了 VSS 时代的先锁定后修改方式)。要么得借助于然 rebase ,待合并分支先变基,然后再往主分支合并(这就类似于 SVN 方式了)。并且,你还得配置 merege request 的执行方式是 --ff-only 。
    tusj
        21
    tusj  
       2023-10-23 14:52:37 +08:00
    git pull -r
    nothingistrue
        22
    nothingistrue  
       2023-10-23 14:52:44 +08:00
    merge branch xx into xx 正好跟外部文档上的 merge request 一一对应,是一条非常有用的提交。安心留着吧。
    ilovey482i
        23
    ilovey482i  
       2023-10-23 15:01:39 +08:00
    我很好奇,为啥楼为啥要去掉这个呢?
    lete
        24
    lete  
       2023-10-23 17:21:22 +08:00
    @ilovey482i #23 看着难受
    kirory
        25
    kirory  
       2023-10-23 19:41:39 +08:00
    grep -v 'merge branch'
    nightwitch
        26
    nightwitch  
       2023-10-23 20:21:46 +08:00
    @ilovey482i 管理的不好容易出现 merge hell 。。比如同时有 2-3 个活跃的分支在往主线合并,交叉的连线很容易变成蜘蛛网。 比如这种提交历史基本就没法看了
    duanxianze
        27
    duanxianze  
       2023-10-23 20:23:40 +08:00
    根据我的实际经验,不要有这种洁癖,难看总比出问题要好
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     887 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 21:32 PVG 05:32 LAX 13:32 JFK 16:32
    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