【问题标题】:rebase a PR to a single commit on top of master将 PR 重新设置为在 master 之上的单个提交
【发布时间】:2019-03-13 14:01:39
【问题描述】:
我是 Git 和 GitHub 的新手。我为 repo 创建了一个 PR,之后我在 PR 中进行了一些编辑。
“此 PR 中 6 个提交中有 5 个是合并提交或修复提交。您能否将此 PR 重新设置为在主节点之上的单个提交?”
回购维护者要求我这样做,但我真的不知道如何将 PR 中的所有这 6 个提交转换为在主节点之上的单个提交,以及“在主节点之上提交”是什么意思?
【问题讨论】:
标签:
git
github
commit
rebase
pull-request
【解决方案1】:
我不知道您如何安排工作历史的详细信息,但是,假设您开始的分支和您的分支之间的差异是您需要提交的工作,并且仅此,我会做的是:我会找出你的分支和“主”共享的最后一个修订,然后我会创建一个单一的修订,其中包含从那时起的所有差异。根据您的方便进行调整:
git checkout my-branch
git merge-base my-branch origin/master # this will output a revision ID
git reset --soft the-id-provided-before # set branch pointer on that revision
git commit -m "This is my work in a single revision"
git push whatever-repo my-branch
然后您可以在“清理”并创建单个修订后从该修订创建 PR。
展望未来,如果您打算与其他人分享您的工作,我会告诉您学习如何使用 rebase 和cherry-pick 来避免合并。