大神们,求助。
背景:test 是脏分支,dev 是最新的从 master 拉出来分支。
一个需求更改,忘记了 checkout 到 dev,而是在 test 上改的。
如何把脏分支 test 的这部分修改 merge 到 dev 上?
![]() | 1 tyx1703 2020-12-19 12:31:39 +08:00 via iPhone ![]() cherry-pick |
![]() | 3 ytmsdy 2020-12-19 13:01:15 +08:00 via iPhone 下个 sourcetree,然后一块一块的暂存 |
4 Jirajine 2020-12-19 13:24:55 +08:00 via Android 在 test 分支上 git reset <你想要 merge 的 commit 提交前> git checkout --merge dev #解决冲突 git add . git commit |
![]() | 5 chibupang 2020-12-19 13:30:06 +08:00 via iPhone git reset HEAD git stash git checkout dev git stash pop |
![]() | 6 dswyzx 2020-12-19 13:30:41 +08:00 via iPhone 有了 gui,一切的骚操作都是那么简单。但毕竟 v2er,gitbash 保平安。 我只知道关键字 摘取 就是你想要的 |
![]() | 7 kingfun 2020-12-19 15:24:29 +08:00 sourcetree 一个遴选功能就秒杀上面各种繁杂的命令行了,可以基于任意一次 commit 进行 merge 到任何一个分支。 |
![]() | 8 mouyong 2020-12-19 16:47:54 +08:00 git log -2 查看 commit hash,然后执行 git cherry-pick 指定的 commit hash 值 |
9 leelz 2020-12-19 21:03:35 +08:00 git log 复制 commit id git checkout dev git cherry-pick commit id |
10 zoomdong 2020-12-19 22:41:16 +08:00 直接把这个提交 cherry-pick 过去就行了 |
![]() | 11 msg7086 2020-12-19 23:20:34 +08:00 Rebase 或者 Cherry-pick 或者提出文件然后 Commit 都可以。 本质上是把更改差分从一个分支搬到另一个分支,很多操作都可以实现这个结果。 |
![]() | 12 LudwigWS 2020-12-20 07:59:33 +08:00 via iPhone @kingfun 不就是 cherry-pick 吗,一行命令的事。用 GUI Git 还想秒杀命令行 |
13 Jarvennnnnnnn 2020-12-20 15:43:04 +08:00 sourcetree 是什么软件 |