如果你已经按照以下步骤:
git pull origin develop_xxx
git merge feature_branch
git push origin develop_xxx
将本地的 feature_branch
代码合并到 develop_xxx
并推送到了远程仓库 develop_xxx 分支上,那么 GitHub 上的 develop_xxx
分支已经包含了最新的更改。
在这种情况下,你无法再从本地的 feature_branch
创建 PR,因为更改已经直接合并到了 develop_xxx
,并且 PR 通常是用来在未合并的分支之间提交代码进行审核的。
将 feature_branch
合并并推送到远程分支 develop_xxx
,并且希望消除这些更改的痕迹,然后通过 GitHub PR 流程重新进行操作,你需要 撤销这些更改并重置远程仓库的状态。下面是详细步骤:
1. 重置远程分支 develop_xxx
回到合并前的状态
首先,需要回到 develop_xxx
分支上,并撤销你已经推送的合并。
1.1 查看develop_xxx
的历史
通过下面的命令查看合并之前的提交记录,找到合并之前的提交 ID:
git log
这个命令会列出当前分支的提交历史,你需要找到合并之前的那次提交的哈希值(例如 abc1234
)。
1.2 回退到合并前的状态
使用下面的命令,将 develop_xxx
分支重置为合并之前的状态:
git reset --hard <commit_id>
将 <commit_id>
替换为你在上一步中找到的合并前的提交 ID。
1.3 强制推送到远程仓库
由于你已经推送了更改到远程分支,现在需要强制推送 (--force
) 回滚后的状态到远程 develop_xxx
:
git push origin develop_xxx --force
这个命令会覆盖远程仓库中的 develop_xxx
分支,恢复到合并之前的状态。
2. 重新创建 PR 进行代码审核
2.1 确保 feature_branch
推送到远程
如果 feature_branch
尚未推送到远程仓库,请执行以下命令推送:
git push origin feature_branch
2.2 在 GitHub 上创建新的 Pull Request
登录 GitHub 后,按照以下步骤操作:
- 打开你的项目仓库页面,点击 "Pull requests" 标签。
- 点击 "New pull request"。
- 选择 "base" 分支为
develop_xxx
,"compare" 分支为feature_branch
。 - 添加描述,说明 PR 的目的和更改内容。
- 点击 "Create pull request"。
2.3 等待团队审核并合并
团队成员可以对 PR 进行代码审核,审查通过后,可以通过 GitHub 将 feature_branch
合并到 develop_xxx
。
总结步骤:
- 通过
git reset --hard
回到合并前的状态。 - 强制推送
develop_xxx
的状态到远程。 - 重新创建 PR,并等待审核。
这样,你可以消除直接合并的痕迹,重新通过 GitHub PR 流程进行代码审核。
要发起 PR 的正确方式:
如果你希望通过 PR 将 feature_branch
合并到 develop_xxx
,不要直接合并和推送到 develop_xxx
。你应该按以下步骤操作:
1. 确保 feature_branch
推送到了远程仓库
如果你的 feature_branch
还没有推送到远程仓库,请使用以下命令:
git push origin feature_branch
这会将本地 feature_branch
推送到远程仓库。
2. 创建 Pull Request (PR)
- 登录 GitHub,进入你的项目仓库页面。
- 点击 "Pull requests" 选项卡。
- 点击 "New pull request" 按钮。
3. 选择分支进行合并
- 在 "base" 分支下拉框中,选择
develop_xxx
(目标分支)。 - 在 "compare" 分支下拉框中,选择
feature_branch
(要合并的分支)。
GitHub 会自动显示 feature_branch
相对于 develop_xxx
的差异。
4. 填写 PR 信息
- 添加标题和描述,说明该 PR 的目的、解决的问题、以及任何需要特别注意的地方。
- 点击 "Create pull request" 按钮。
5. 等待代码审核并合并
- 团队成员可以查看 PR,评论或要求修改。
- 如果 PR 通过审核,你或团队中的任何人都可以点击 "Merge pull request" 将
feature_branch
合并到develop_xxx
。
总结:
要通过 PR 进行团队审核,不要在本地直接合并并推送到 develop_xxx
。而是:
- 推送
feature_branch
到远程。 - 在 GitHub 上发起从
feature_branch
到develop_xxx
的 PR。 - 让团队成员审核并合并。
通过这种方式,你的更改会经过团队审查,并且流程更清晰。