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

关于 github pull request 设计的有问题吧?

  •  
  •   MuscleOf2016 · 2019-04-18 23:20:51 +08:00 · 2416 次点击
    这是一个创建于 2047 天前的主题,其中的信息可能已经有所发展或是发生改变。

    举例如下:
    M 分支:A 文件:111,B 文件:222
    基于 M 分支创建 U 分支
    U 分支:A 文件:111,B 文件:222

    修改 M 分支如下
    M 分支:A 文件:1111,B 文件:222
    修改 U 分支如下
    U 分支:A 文件:1112,B 文件:2222

    合并 M 分支到 U 分支,发起 pull request,解决冲突后
    M 分支:A 文件:11112,B 文件:2222
    U 分支:A 文件:11112,B 文件:2222

    这。。不是应该只有 A 文件合并吗,怎么 M 分支的 A 文件也被修改了,还是我理解的有问题,求大佬指教

    17 条回复    2019-04-19 00:22:50 +08:00
    MuscleOf2016
        1
    MuscleOf2016  
    OP
       2019-04-18 23:21:29 +08:00
    在自己的仓库两个分支之前合并的
    binux
        2
    binux  
       2019-04-18 23:47:28 +08:00 via Android
    看不懂你说什么。
    mercury233
        3
    mercury233  
       2019-04-18 23:48:42 +08:00
    git 的解决冲突就是把另一个分支合并过来,所以会修改 M 分支的 B 文件
    MuscleOf2016
        4
    MuscleOf2016  
    OP
       2019-04-18 23:52:32 +08:00
    @binux 要更新 U 分支的时候,不是 A 文件有冲突吗,解决冲突后,理论上只有 U 分支的 A 文件更新了。怎么 M 分支的 B 文件更新了 U 分支的 B 文件
    MuscleOf2016
        5
    MuscleOf2016  
    OP
       2019-04-18 23:53:45 +08:00
    @mercury233 M 和 U 分支的,B 文件不是没有冲突吗,只有 A 文件有冲突的,怎么也会更新成一样? git 本来就是这样的?
    mercury233
        6
    mercury233  
       2019-04-18 23:57:14 +08:00
    @MuscleOf2016 我感觉你没有看我的发言
    binux
        7
    binux  
       2019-04-19 00:00:06 +08:00
    合并 M 分支到 U 分支,发起 pull request,这是一个操作还是两个操作?
    MuscleOf2016
        8
    MuscleOf2016  
    OP
       2019-04-19 00:01:51 +08:00
    @mercury233 看了的,本来我理解的是,M 和 U 分支的 A 文件有冲突,U 分支的 B 文件本来就是超前 M 分支的 B 文件的,想要合并 M 分支的修改到 U 分支上,解决了冲突不是针对 A 文件的吗?怎么 M 分支落后的 B 文件会更新?我理解的,M 分支的 B 文件是不会更新的,依然处于落后状态。
    MuscleOf2016
        9
    MuscleOf2016  
    OP
       2019-04-19 00:02:57 +08:00
    @binux 一个。
    jacketma
        10
    jacketma  
       2019-04-19 00:08:03 +08:00 via Android
    github 被购以后,高冷了很多,我的账号什么都没干,无端被机器人 flagged,发邮件多次反应,既不回应,也不说明,也不解封,不晓得他们在干嘛。
    mercury233
        11
    mercury233  
       2019-04-19 00:10:38 +08:00   ❤️ 1
    @MuscleOf2016 git 的解决冲突就是把另一个分支合并过来
    在你的例子里解决冲突就是把 U 分支合并到 M 分支,对 U 分支的所有 commit 都会被合并到 M 分支
    MuscleOf2016
        12
    MuscleOf2016  
    OP
       2019-04-19 00:13:25 +08:00
    @mercury233 啊,我以为是本来把 M 分支的内容更新到 U 分支上,随便什么冲突更新,并不会对 M 分支有改动,只有 U 分支会改动。
    mercury233
        13
    mercury233  
       2019-04-19 00:19:09 +08:00   ❤️ 1
    @MuscleOf2016 解决冲突就是修改 M 分支
    github 的 pull request 分支好像是设计为用来开 PR 的分支在合并后就会被删除的,所以才会这样
    MuscleOf2016
        14
    MuscleOf2016  
    OP
       2019-04-19 00:21:46 +08:00
    @mercury233 好吧,是自己不够理解了,在 web 上发起合并请求的时候 B 文件都会更新成一样,本地来把 M 更新到 U 上的时候,倒是按照理解的实现了。
    mercury233
        15
    mercury233  
       2019-04-19 00:22:02 +08:00   ❤️ 1
    @MuscleOf2016 如果你不用 pull request,在客户端自己合并的话,才是只改 U 分支
    MuscleOf2016
        16
    MuscleOf2016  
    OP
       2019-04-19 00:22:15 +08:00
    @mercury233 应该是有自动合并这个操作
    MuscleOf2016
        17
    MuscleOf2016  
    OP
       2019-04-19 00:22:50 +08:00
    @mercury233 谢谢了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   884 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:45 · PVG 05:45 · LAX 13:45 · JFK 16:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.