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

2016-08-17 16:40:28 +08:00
 Zeahoo

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

9078 次点击
所在节点    git
19 条回复
chenghuang
2016-08-17 16:43:03 +08:00
git merge origin/master
git merge origin/develop
git cm
git push
merge request
julyclyde
2016-08-17 16:44:46 +08:00
似乎取决于你的 develop 和 master 啥关系啊
Zeahoo
2016-08-17 16:48:08 +08:00
@julyclyde develop 是不稳定的版本,是基于 master 切出来的分支。
julyclyde
2016-08-17 16:49:43 +08:00
@Zeahoo merge-base develop master 是不是比 merge-base 新分支 master 要更早些?
Zeahoo
2016-08-17 16:54:46 +08:00
@julyclyde 添加功能的时候都是先把功能 merge 到 develop 上再从 develop merge 到 master 上的,只不过我这次弄错了,从 master 切出分支
wenbinwu
2016-08-17 17:00:09 +08:00
直接 merge develop 不就行了么?
9hills
2016-08-17 17:01:16 +08:00
用 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
2016-08-17 17:04:30 +08:00
git rebase
cjyang1128
2016-08-17 17:24:21 +08:00
rebase -i && pick squash
cherry-pick
vwhenx
2016-08-17 17:28:13 +08:00
按理说 master 分支是应该可以随时合并到其他分支的才对
kisnows
2016-08-17 17:52:00 +08:00
rebase 冲突太多了,需要一次次的去解决。还是 merge 来的快一点
Sharuru
2016-08-17 18:00:44 +08:00
= = 一般自己的个人 dev 分支才会在 push 之前用用 rebase ,通常特性都是 merge 的。
merge 的时候 squash 成一条 commit 信息就好,不然 history 太美。
julyclyde
2016-08-17 20:18:58 +08:00
cherry-pick 按说应该可以啊
zhang6464
2016-08-17 20:30:47 +08:00
@cjyang1128 正解, rebase 要带上基线,你的最早的 commit , cherry-pick 也可以把所有代码提出来,然后 stash save 一下, checkout 到 develop 再 pop
zhang6464
2016-08-17 20:31:48 +08:00
merge 需要你手动把不是你修改的代码剔除掉。。如果 diff 不是太多的话,也可以考虑 merge
wweir
2016-08-18 10:04:21 +08:00
@cjyang1128 个人感觉这样可能更好:
rebase -i $(master && develop same base)
rebase
baikaishui77
2016-08-18 12:23:50 +08:00
@kisnows 才五个 commit 而且 commit 如果更多 可以先 rebase -i 合并 commit 再分支 rebase
baikaishui77
2016-08-18 12:35:45 +08:00
cherry-pick 实际上效果和 rebase 一致
zenliver
2016-08-18 17:01:12 +08:00
分别合并到 master 和 develop ~~~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/299947

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX