git 一个分支 push 到远程,会携带其他分支的 commit? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
smdbh
V2EX    git

git 一个分支 push 到远程,会携带其他分支的 commit?

  •  
  •   smdbh Feb 22, 2024 2840 views
    This topic created in 794 days ago, the information mentioned may be changed or developed.

    本地网络有个 git 仓库,main 都是其他分支 merge 得到的,就 3 ,4 个 commit, 其他分支有总共几十个提交。

    现在想将 main 分支的这几个 commit 发布到外网的 git 仓库,其他分支不发 外网仓库刚新建,无任何内容 使用

    git push remotename main 

    期望外网 main 只有 3 ,4 个提交, 但结果外网的 git main 出现几十个提交,包含了所有分支的信息

    请问这是啥问题,该如何操作实现期望的几个提交结果, 谢谢

    11 replies    2024-02-23 09:18:12 +08:00
    yungo8
        1
    yungo8  
       Feb 22, 2024 via Android   1
    你不是问题,你看错本地的 main 了?本地的 main 合了其它分支必然包括那些提交
    smdbh
        2
    smdbh  
    OP
       Feb 22, 2024
    @yeqizhang 那这个不是和 rebase 没区别了
    94
        3
    94  
       Feb 22, 2024   1
    你应该用 squash 把想要合并进来分支历史压缩成一个 Commit 。直接 merge 会带着合并进来的分支中所有的 commit 的
    94
        4
    94  
       Feb 22, 2024
    @yeqizhang #1 ,OP 的 main 里面的 4 个 commit 应该都是 merge commit 吧。
    MENGKE
        5
    MENGKE  
       Feb 22, 2024
    git merge xxx --no-ff
    lisxour
        6
    lisxour  
       Feb 22, 2024   1
    你说的 3 、4 个 commit ,是 merge commit 吧。。。

    如果你合并分支时,不把 commit 合成一个,其实是会把每一条 commit 带过来的

    leonshaw
        7
    leonshaw  
       Feb 22, 2024   2
    commit 不是空中楼阁
    smdbh
        8
    smdbh  
    OP
       Feb 22, 2024
    @lisxour ,我是想只要蓝色的 push 出去,实际是紫色的也有了。 “如果你合并分支时,不把 commit 合成一个,其实是会把每一条 commit 带过来的”, 是不是说紫色先要 squash 成 1 个 commit 再 merge 到 main ?
    94
        9
    94  
       Feb 22, 2024
    @smdbh #8 ,是的
    jpuyy
        10
    jpuyy  
       Feb 22, 2024
    git log main 有多少 commit, push 到 remote main 就会有多少 commit
    lisxour
        11
    lisxour  
       Feb 23, 2024
    @smdbh #8 是的,但是合不合并成大 commit 各有优缺点,实际用哪种看各自的具体需求

    合并成大 commit
    优点:回退方便,一回退就是一整个功能
    缺点:丢失中间的小 commit 信息(改动信息),只知道做了这个功能

    不合并大 commit
    优点:所有 commit 信息都还在,方便查历史改动
    缺点:出了问题不好回退,假如两个功能改动在一个期间同时 merge 了,两个的 commit 会全混在一起,当你想回退 A 功能时,你需要把 A 功能所有相关 commit 找回来才能回退
    About     Help     Advertise     Blog     API     FAQ     Solana     3881 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 58ms UTC 00:55 PVG 08:55 LAX 17:55 JFK 20:55
    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