git
› Pro Git
› Atlassian Git Tutorial
› Pro Git 简体中文翻译
› GitX
Zeahoo
V2EX  ›  git

在 master 上开了一个分支,但是最后却要合并到 develop 上, 这个分支有 5 个提交,用什么命令比较好

  •  
  •   Zeahoo · Aug 17, 2016 · 10590 views
    This topic created in 3734 days ago, the information mentioned may be changed or developed.

    大家帮帮忙, 我现在是准备用 cherry-pick 来提交,但是老是会报错,有没有什么其他的好办法

    19 replies  •  2016-08-18 17:01:12 +08:00
    chenghuang
    chenghuang
    Aug 17, 2016
    1
    git merge origin/master
    git merge origin/develop
    git cm
    git push
    merge request
    julyclyde
    julyclyde
    Aug 17, 2016
    2
    似乎取决于你的 develop 和 master 啥关系啊
    Zeahoo
    Zeahoo
    OP
    Aug 17, 2016
    3
    @julyclyde develop 是不稳定的版本,是基于 master 切出来的分支。
    julyclyde
    julyclyde
    Aug 17, 2016
    4
    @Zeahoo merge-base develop master 是不是比 merge-base 新分支 master 要更早些?
    Zeahoo
    Zeahoo
    OP
    Aug 17, 2016
    5
    @julyclyde 添加功能的时候都是先把功能 merge 到 develop 上再从 develop merge 到 master 上的,只不过我这次弄错了,从 master 切出分支
    wenbinwu
    wenbinwu
    Aug 17, 2016
    6
    直接 merge develop 不就行了么?
    9hills
    9hills
    Aug 17, 2016
    7
    用 merge 的都是误人子弟哈,等着你的 history 一团乱吧

    git checkout to_merge_branch
    git checkout -b tmp_branch (复制临时分支,避免新手搞晕了头)
    git rebase develop (以 develop 为基准 rebase ,此时可能要处理冲突)
    git checkout develop
    git merge tmp_branch
    wangxn
    wangxn
    Aug 17, 2016 via Android
    8
    git rebase
    cjyang1128
    cjyang1128
    Aug 17, 2016❤️1
    9
    rebase -i && pick squash
    cherry-pick
    vwhenx
    vwhenx
    Aug 17, 2016
    10
    按理说 master 分支是应该可以随时合并到其他分支的才对
    kisnows
    kisnows
    Aug 17, 2016
    11
    rebase 冲突太多了,需要一次次的去解决。还是 merge 来的快一点
    Sharuru
    Sharuru
    Aug 17, 2016
    12
    = = 一般自己的个人 dev 分支才会在 push 之前用用 rebase ,通常特性都是 merge 的。
    merge 的时候 squash 成一条 commit 信息就好,不然 history 太美。
    julyclyde
    julyclyde
    Aug 17, 2016
    13
    cherry-pick 按说应该可以啊
    zhang6464
    zhang6464
    Aug 17, 2016
    14
    @cjyang1128 正解, rebase 要带上基线,你的最早的 commit , cherry-pick 也可以把所有代码提出来,然后 stash save 一下, checkout 到 develop 再 pop
    zhang6464
    zhang6464
    Aug 17, 2016
    15
    merge 需要你手动把不是你修改的代码剔除掉。。如果 diff 不是太多的话,也可以考虑 merge
    wweir
    wweir
    Aug 18, 2016
    16
    @cjyang1128 个人感觉这样可能更好:
    rebase -i $(master && develop same base)
    rebase
    baikaishui77
    baikaishui77
    Aug 18, 2016
    17
    @kisnows 才五个 commit 而且 commit 如果更多 可以先 rebase -i 合并 commit 再分支 rebase
    baikaishui77
    baikaishui77
    Aug 18, 2016
    18
    cherry-pick 实际上效果和 rebase 一致
    zenliver
    zenliver
    Aug 18, 2016
    19
    分别合并到 master 和 develop ~~~
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1083 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 102ms · UTC 17:11 · PVG 01:11 · LAX 09:11 · JFK 12:11
    ♥ Do have faith in what you're doing.