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

git 开源项目 pr 问题

  •  
  •   creedowl · 2018-08-16 14:23:34 +08:00 · 1427 次点击
    这是一个创建于 487 天前的主题,其中的信息可能已经有所发展或是发生改变。

    第一次接触到 github 的开源项目,有一些问题一直弄不清楚,来请教一下

    1. 我需要使用 github 上面的项目 A,但需要修改一部分,就 fork 了一份进行了一些修改(比如配置之类的原项目一般不会更改的内容),那么我要如何保持我 fork 的项目更新(解决冲突)?
    2. 在这之后我发现了 A 项目的一个 bug 并进行了修复,现在我想把这个修复 pr 到原项目,那么之前的改动会不会有影响,如果有要怎么解决呢?
    9 回复  |  直到 2018-08-16 16:48:14 +08:00
        1
    Greenm   2018-08-16 14:54:52 +08:00
    你可以单独建立一个分支,更新后合并到你自己的分支里,手动解决 conflict

    bug 也是从 master 建立分支提交 PR,这样跟你自己的分支不冲突。

    而且一般提交 PR 都是要求创建单独的分支,免得污染 master
        2
    creedowl   2018-08-16 14:59:09 +08:00
    @Greenm #1 就是说我在我 fork 的 repo 里, 我的改动放在自己建立的分支上 B, 自己使用的就是 B, 每次从原项目更新 master, 合并到 B 上手动解决 conflict, 然后 bug 就从 master 新建另一个分支修复发 pr, 同时合并到我自己的那个分支上吗?
        3
    Greenm   2018-08-16 15:03:01 +08:00
    @creedowl 对,就是这样。
        4
    creedowl   2018-08-16 15:05:40 +08:00
    @Greenm #3 清楚了, 谢谢
        5
    creedowl   2018-08-16 15:33:06 +08:00
    @Greenm #3 还有个小问题, 之后我只能每次更新手动解决 conflict 吗, 我修改的内容原项目一般不会变化, 有什么解决办法吗
        6
    ihainan   2018-08-16 15:45:52 +08:00
    @creedowl 如果原项目不更新…为什么会有 conflict 呢,你不都是在原项目基础上做的修改吗?
        7
    Greenm   2018-08-16 15:49:34 +08:00
    对呀,源项目都不怎么更新,一般都不会有 conflict 的,直接合并就好了。
        8
    creedowl   2018-08-16 16:07:19 +08:00
    @ihainan #6
    @Greenm #7 哦哦, 对 git 还是不太熟悉, 没理解清楚
        9
    ryd994   2018-08-16 16:48:14 +08:00 via Android
    不一定 pull master
    想要保持 commit log 干净的话用 rebase 更好
    这是两派人的用法
    因为老项目不用 GitHub,靠邮件协作,要求把改动 squash 到一个 patch 文件里。所以你最后还是要 rebase 一次

    2. 修 bug 开新 branch
    修完先 pr bugfix
    等 merge 之后,rebase 或 pull 同步 master,再继续 pr 新 feature
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2853 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 209ms · UTC 12:34 · PVG 20:34 · LAX 04:34 · JFK 07:34
    ♥ Do have faith in what you're doing.