各位大佬,我问个 Git 的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
hhh798
V2EX    程序员

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

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

    惭愧,不会用 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 到你的分支就行
    filtrate
        26
    filtrate  
       2019-08-24 22:40:03 +08:00 via iPhone
    Google 搜索关键字 "gut merge pr 命令行"
    filtrate
        27
    filtrate  
       2019-08-24 22:41:37 +08:00 via iPhone
    @jinqzzz gut 是 git
    itechify
        28
    itechify  
    PRO
       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     Solana     2503 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 15:04 PVG 23:04 LAX 08:04 JFK 11:04
    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