江苏越润建设有限公司网站,网络推广网站建设有限公司,wordpress左图右字,下班后赚钱的100个副业对于多分支的代码库#xff0c;将代码从一个分支转移到另一个分支是常见需求。
这时分两种情况。一种情况是#xff0c;你需要另一个分支的所有代码变动#xff0c;那么就采用 合并#xff08;merge#xff09;。另一种情况是#xff0c;你只需要部分代码变动#xff0…对于多分支的代码库将代码从一个分支转移到另一个分支是常见需求。
这时分两种情况。一种情况是你需要另一个分支的所有代码变动那么就采用 合并merge。另一种情况是你只需要部分代码变动某几个提交这时可以采用 拣选Cherry pick。
通俗的讲 拣选 直接把某一次 提交 commit拿过来作为最新一次提交就像是直接摘了一颗樱桃加在链表最前面所以叫Cherry pick 拣选。 如果你感兴趣可以从 Git 的底层来了解下拣选如果不感兴趣可以忽略这些内容。 git cherry-pick commitHash该命令将指定的提交 commitHash 应用于当前分支。这会在当前分支产生一个新的提交当然它们的哈希值会不一样。 举例来说代码仓库有 master 和 feature 两个分支。 a - b - c - d Master\e - f - g Feature现在将提交 f 应用到 master 分支。 # 切换到 master 分支
$ git checkout master# 拣选 操作
$ git cherry-pick f上面的操作完成以后代码库就变成了下面的样子。 a - b - c - d - f Master\e - f - g Feature从上面可以看到master分支的末尾增加了一个提交 f。 git cherry-pick 命令的参数不一定是提交的哈希值分支名也是可以的表示转移该分支的最新提交。 $ git cherry-pick feature上面代码表示将 feature 分支的最近一次提交转移到当前分支。 拣选的一般步骤
将 test-合并指定提交 分支中的某个提交应用到 master 分支的步骤如下 切换到 master 分支鼠标右键 -Tortoise Git - Switch/Checkout...选择 master 分支。 打开 提交日志对话框切换到 test-合并指定提交 分支选中要 拣选 的某个提交或多个提交然后右击鼠标弹出右键菜单选择 Cherry Pick this commit...选中一个提交或 Cherry Pick select commits...选中多个提交。 这里选中 分支提交2右击鼠标弹出右键菜单选择 Cherry Pick this commit... 弹出 拣选 对话框。 拣选对话框与变基Rebase对话框很像。顶部窗口中每行显示一个选中的要 cherry-pick 的提交。顶部窗口下面的按钮控制操作比如选取Pick提交、编辑、跳过等还可以选择多个提交的顺序。
选中一行提交后在底部窗口将显示受影响的文件。
选中要拣选的提交单击 Continue 按钮。如果没有冲突在弹出的界面中按下 Done 按钮完成 拣选 操作。
注意拣选可能产生合并冲突在下面的 处理拣选冲突 中介绍如何解决冲突。
处理拣选冲突
1.在 拣选的一般步骤 一节中最后的合并可能会有冲突。如果有冲突在 Cherry Pick 对话框的底部窗口中会显示出冲突的文件 TortoiseGit会使用特定的图标标示出冲突的文件 选中冲突文件在右键菜单中选择 TortoiseGit - Edit Conflicts 启动外部合并工具/冲突编辑器手动解决冲突。 这里 CHERRY_PICK_HEAD(77c84bf9) 是我们要合并的源文件与 Base 文件相比较可以看出新增加了一个内容为 “分支提交5” 的提交这个提交是我们要拣选到主分支 HEAD 指向的文件的提交。 4. 手动编辑冲突需要把 “分支提交5” 内容拷贝到主分支HEAD指向的文件然后保存 5. 手动修改冲突文件后执行 TortoiseGit - Resolve... 菜单项在弹出的对话框中点击 OK按钮将刚刚修改的冲突文件标记为 冲突已解决(resolve) 7. 标记为冲突已解决后TortoiseGit弹出下一步操作界面。正常的合并冲突流程需要做一次提交填写本次冲突解决的信息但我们这里是拣选合并并不需要手动做一次提交所以这里点击OK按钮而不要点Commit...按钮这是与普通合并冲击解决流程的唯一区别。 8. 回到拣选对话框在底部窗口按下 F5 快捷键刷新显示内容可以看到文件已经不是冲突状态。这时按下 Commit 按钮让 TortoiseGit 自动做一次提交。注意这次提交并不需要你填写什么信息TortoiseGit 会把拣选的提交信息搬运到这次提交中。 8. 自动完成一次提交后按下 Done 按钮完成 拣选 操作。 读后有收获资助博主养娃 - 千金难买知识但可以买好多奶粉 (〃‘▽’〃)