V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
smdbh
V2EX  ›  git

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

  •  
  •   smdbh · 308 天前 · 2195 次点击
    这是一个创建于 308 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    git push remotename main
    

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

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

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

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

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

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

    不合并大 commit
    优点:所有 commit 信息都还在,方便查历史改动
    缺点:出了问题不好回退,假如两个功能改动在一个期间同时 merge 了,两个的 commit 会全混在一起,当你想回退 A 功能时,你需要把 A 功能所有相关 commit 找回来才能回退
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5714 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 01:50 · PVG 09:50 · LAX 17:50 · JFK 20:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.