如何通过Git命令行从Pull Request中仅合并单个Commit C
只合并PR中单个Commit(Commit C)的详细步骤
没问题,我来一步步带你完成用cherry-pick只合并Commit C的操作,全程用命令行就能搞定:
第一步:更新本地主分支到最新状态
先切换到你的仓库主分支(假设分支名为main,如果是master就替换成对应名称),拉取远程最新代码:git checkout main git pull origin main第二步:获取Commit C的哈希值
你有两种方式拿到这个哈希:- 直接去GitHub的PR页面,找到Commit C的条目,旁边会有一个复制哈希的按钮(看起来像剪贴板图标),点击复制即可;
- 或者通过命令行拉取同事的fork仓库:
找到后复制Commit C的哈希值。# 添加同事的fork作为远程仓库(替换成你同事的仓库地址) git remote add coworker https://github.com/同事用户名/AFork.git # 拉取同事仓库的所有分支 git fetch coworker # 切换到同事提交PR的分支(替换成实际分支名) git checkout coworker/pr-branch-name # 查看提交记录,找到Commit C的哈希(通常是7位左右的字符串) git log --oneline
第三步:cherry-pick目标提交到主分支
切回你的主分支,执行cherry-pick命令:git checkout main # 替换成你复制的Commit C的哈希值 git cherry-pick abc1234- 如果没有冲突,命令会直接执行成功;
- 如果出现冲突,Git会提示你手动解决冲突。解决完冲突后,执行:
git add . git cherry-pick --continue - 要是中途想放弃操作,执行
git cherry-pick --abort即可。
第四步:推送更改到远程仓库
确认cherry-pick成功后,把本地主分支的更改推送到远程:git push origin main第五步:处理GitHub上的PR
回到GitHub的PR页面,现在你已经手动合并了需要的Commit C,直接关闭这个PR就可以了,不需要合并整个PR的内容。
⚠️ 小提醒:确保Commit C的更改不依赖Commit A和B的内容哦,不然cherry-pick可能会出现意料之外的冲突或问题。
内容的提问来源于stack exchange,提问作者Omtechguy
相关产品推荐
相关产品推荐

