V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hhh798
V2EX  ›  程序员

各位大佬,我问个 Git 的问题

  •  
  •   hhh798 · 2019-08-24 12:02:45 +08:00 · 5331 次点击
    这是一个创建于 1919 天前的主题,其中的信息可能已经有所发展或是发生改变。

    惭愧,不会用 Git。 现在问题是这样的,我在用 flutter 开发 APP,现在有个 bug,有人提交了 pull request,貌似解决了,那么我怎么把他的 pull request 的代码下载到我本地,我自己又能用呢? 就是这个 pull request: https://github.com/flutter/flutter/pull/36616

    36 条回复    2019-08-25 11:11:42 +08:00
    zhuzhibin
        1
    zhuzhibin  
       2019-08-24 12:12:18 +08:00 via iPhone
    review 一下 没问题就直接合并 merge 过来呀 谷歌一下你就明白了
    imzcg
        2
    imzcg  
       2019-08-24 12:19:13 +08:00 via Android
    hhh798
        3
    hhh798  
    OP
       2019-08-24 12:33:46 +08:00
    @zhuzhibin 我本地是直接下载的 flutter 的包,没有用 Git。我是要先用 Git 下载 flutter 吗?他提交的 pull request,没有被 flutter 合并,我是直接合并用我本地下载的代码仓库合并他提交的 pullrequest 吗?
    @imzcg 你的这个教程好像没有解决我的问题呢
    labulaka521
        4
    labulaka521  
       2019-08-24 12:37:35 +08:00
    直接把那 fork 修复的代码重新下载下来不就完了?
    shingle
        5
    shingle  
       2019-08-24 12:37:54 +08:00 via Android
    @nioncodotcom 可以直接去提 pr 的作者仓库 clone 下来,看清是哪次提交
    mimimiZ
        6
    mimimiZ  
       2019-08-24 12:39:01 +08:00 via iPhone
    arrow8899
        7
    arrow8899  
       2019-08-24 12:49:24 +08:00
    直接把对方的仓库克隆下来
    git clone [email protected]:liyuqian/flutter.git
    networm
        8
    networm  
       2019-08-24 12:50:44 +08:00 via iPad
    这些信息最好直接查找 GitHub 帮助文档
    https://help.github.com/cn/articles/checking-out-pull-requests-locally
    Leigg
        9
    Leigg  
       2019-08-24 13:03:59 +08:00 via Android   ❤️ 2
    本站已经跟百度谷歌等公司达成战略合作,不需要在站里发帖问直接上百度谷歌搜索即可免费获取答案了
    ipwx
        10
    ipwx  
       2019-08-24 13:09:53 +08:00 via Android
    cherry pick?
    Yvette
        11
    Yvette  
       2019-08-24 13:11:50 +08:00
    @Leigg V 站跟谷歌中国真的是有合作来着 媒体合作伙伴
    hhh798
        12
    hhh798  
    OP
       2019-08-24 13:11:59 +08:00
    @networm @mimimiZ
    看了每太明白,我搜索了一下,我是不是要这样做:
    1、下载主分支:git clone -b master https://github.com/flutter/flutter.git
    2、切换到 maser 分支:git checkout master
    2、下载 pull request:git fetch https://github.com/flutter/flutter.git pull/36616/head:fenzhi123
    3、合并 pull request:git merge fenzhi123
    hhh798
        13
    hhh798  
    OP
       2019-08-24 13:13:09 +08:00
    @Leigg 没用过 git, 搜索起来效率会比较低,所以来这里问大家了
    willxiang
        14
    willxiang  
       2019-08-24 13:19:21 +08:00 via iPhone
    我推荐你先去看个 git 的使用教程,比如廖雪峰老师的。看完以后心里对 git 是什么东西,该怎么用,有个大概了解以后,你现在这个问题就迎刃而解了
    leafre
        15
    leafre  
       2019-08-24 13:27:00 +08:00
    别看廖雪峰的
    nmgwddj
        16
    nmgwddj  
       2019-08-24 13:37:35 +08:00 via iPhone   ❤️ 3
    正确坐姿:
    git remote add 将对方远程仓库地址添加到本地远程仓库地址列表。
    git fetch 刚添加的远程仓库名 /分支名
    这样自己远程仓库和对方远程仓库共存,切换分支拉取内容即可,不需要维护两个项目.....
    xiri
        17
    xiri  
       2019-08-24 13:46:23 +08:00
    你还是先去学一下 git 怎么用吧,你这样怎么解释都解释不清的
    hhh798
        18
    hhh798  
    OP
       2019-08-24 13:49:09 +08:00
    @nmgwddj 你可能没有仔细看我的问题,我只要把别人 pull request 里的代码,下载下来,解决我的问题就行。不是我的项目,我不用维护
    @xiri 好的,那麻烦你看一下我上面列的步骤对不对呢
    reus
        19
    reus  
       2019-08-24 15:48:39 +08:00
    git clone -b input_events https://github.com/liyuqian/flutter.git

    如果你有基本的 git 知识,你根本就不需要问人,也不需要搜索,就最入门的 clone 而已。
    “没用过 git, 搜索起来效率会比较低,所以来这里问大家了”
    自己不学习,不做功课,该做的没做,有什么资格谈“效率”?
    MonoLogueChi
        20
    MonoLogueChi  
       2019-08-24 16:54:33 +08:00 via Android
    直接拉对方仓库,然后何必
    imzcg
        21
    imzcg  
       2019-08-24 17:58:49 +08:00 via Android
    @reus 你是神,你啥都会,你还去造火箭吧!遇到问题有礼貌的问人是可以的。不想回答可以闭嘴。
    boywhp
        22
    boywhp  
       2019-08-24 18:58:22 +08:00
    我觉得改动不多的话 直接手敲吧 git 确实挺复杂的
    reus
        23
    reus  
       2019-08-24 22:28:53 +08:00
    @imzcg 学一下 git 很难吗?只有神才能学会 git 吗?我他妈就是认为,不停说自己“没用过”,“没学过”,前几楼已经给出答案了的情况下,还在不停问,就是不可以!有礼貌就可以不要智慧了是吧?照你的逻辑,你不想看到你可以闭眼啊。
    reus
        24
    reus  
       2019-08-24 22:35:23 +08:00
    @imzcg 啊,真是对不起,我没想到你是月薪到手三千的人,我这是“何不食肉糜”了,莫怪,莫怪,呵呵
    useben
        25
    useben  
       2019-08-24 22:35:37 +08:00
    clone 到本地,然后 cherry-pick 那一条 commit 到你的分支就行
    jinqzzz
        26
    jinqzzz  
       2019-08-24 22:40:03 +08:00 via iPhone
    Google 搜索关键字 "gut merge pr 命令行"
    jinqzzz
        27
    jinqzzz  
       2019-08-24 22:41:37 +08:00 via iPhone
    @jinqzzz gut 是 git
    oneisall8955
        28
    oneisall8955  
       2019-08-24 22:57:54 +08:00 via Android
    github 项目理解 merge 这个 pr,然后更新你本地项目
    Weixiao0725
        29
    Weixiao0725  
       2019-08-24 23:57:39 +08:00
    @reus 你挣多少,说出来看看吧,看看你的优越感有多高到底?网络上真是应该实名,否则什么阿猫阿狗都能蹦出来叫唤。
    axlecho
        30
    axlecho  
       2019-08-25 00:35:55 +08:00 via Android
    拉对方的项目 cherry-pick 那个 pr
    axlecho
        31
    axlecho  
       2019-08-25 00:37:17 +08:00 via Android
    不过这样你要自己编译 flutter
    nevin47
        32
    nevin47  
       2019-08-25 00:49:51 +08:00 via Android
    LZ 中间那个步骤是错的,建议还是看一下 git 基本概念再来看这个帖子吧,里面已经给了标准操作了

    如果 git 基本的概念都不懂,那这个问题就跟一个人问:我不懂 C 语言,请问怎么写一个递归呢? 这种一样,很简单的问题,但是你就是看不懂别人的回复
    xd314697475
        33
    xd314697475  
       2019-08-25 09:42:04 +08:00
    推荐一个最简单的方法

    查看他提交的内容:
    https://github.com/flutter/flutter/pull/36616/commits

    查看他修改了什么:
    https://github.com/flutter/flutter/pull/36616/files

    然后对照着,修改你的代码
    这样的操作几乎不需要懂 git
    hhh798
        34
    hhh798  
    OP
       2019-08-25 09:48:52 +08:00
    谢谢大家,因为我本身并不是开发,只是因为兴趣学了点编程,我自己开发也用不着 Git 所以也没学过。我会去研究一下的。哈哈。
    @xd314697475 @nevin47 @axlecho @reus
    Rheinmetal
        35
    Rheinmetal  
       2019-08-25 10:51:39 +08:00
    直接 clone 仓库太浪费了吧
    添加 remote 就是了
    实在不行可以用 patch
    reus
        36
    reus  
       2019-08-25 11:11:42 +08:00
    @Weixiao0725 呵呵,我是无业游民,不挣钱还天天亏成阿猫阿狗呢,怎么敢在貴様面前有优越感呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   922 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:53 · PVG 03:53 · LAX 11:53 · JFK 14:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.