干脆直接上步骤
要 revert 一个 PR(Pull Request),即撤销已经提交的合并操作,可以按照以下步骤进行:
步骤 1: 找到当前的 PR 合并提交记录
首先,需要找到你想撤销的合并提交,通常是在 GitHub 或 GitLab 上查看 PR 记录时能找到合并提交的 SHA(提交哈希值)。假设你已经确定需要撤销的合并提交。
步骤 2: 检出到目标分支(通常是 Develop_xxx)
在本地执行以下命令,检出到你需要撤销 PR 的分支(即 Develop_xxx):
git checkout Develop_xxx
步骤 3: 执行 git revert 撤销合并提交
使用 git revert 命令来撤销合并提交,-m 1 参数是用来指定合并的父提交,通常情况下,-m 1 表示保留合并的第一个父提交(即合并前的 Develop_xxx 分支状态)。
git revert -m 1 <commit_hash>
其中,<commit_hash> 是你要撤销的合并提交的哈希值。你可以在 GitHub 或 GitLab 上找到该哈希值,或者通过 git log 查看。
Git 提交的哈希值(commit hash)是一个长字符串,通常是 40 个字符的十六进制数,由数字和字母组成。它是每个 Git 提交的唯一标识符。哈希值一般看起来像这样:
a3c3e1b6c5207b89bc9c16b78f30f4fe1c88d5a9
或者可以用前几个字符来缩写,通常是 7 个字符:
a3c3e1b
如何获取提交的哈希值?
你可以使用以下命令查看提交历史及其对应的哈希值:
git log
这个命令会列出提交历史,类似如下输出:
commit a3c3e1b6c5207b89bc9c16b78f30f4fe1c88d5a9
Author: Your Name <youremail@example.com>
Date: Mon Jan 1 12:34:56 2025 +0000
Merge branch 'branch_xx' into Develop_xxx
commit b9c3d7a9f93ab9d17e0239b91bc0930533e2d983
Author: Another Dev <anotherdev@example.com>
Date: Sun Dec 31 11:22:33 2024 +0000
Fix issue with globalnav
你可以看到每个提交的哈希值就是 commit 后面的那串字符。选择你要撤销的合并提交的哈希值,作为 git revert -m 1 <commit_hash> 中的 <commit_hash>。
举个例子,如果你想撤销上面 Merge branch 'branch_xx' into Develop_xxx 这个合并提交,你可以执行:
git revert -m 1 a3c3e1b6c5207b89bc9c16b78f30f4fe1c88d5a9
希望这个解释清楚了哈希值是什么样子的!如果还有问题,欢迎随时提问。
步骤 4: 处理冲突(如果有)
执行 git revert 后,如果有冲突,Git 会提示你解决冲突。此时,你需要手动解决冲突,编辑相关文件并标记为已解决。
解决完冲突后,使用以下命令继续:
git add .
git revert --continue
步骤 5: 提交撤销后的修改
撤销合并提交后,提交并推送到远程仓库:
git commit -m "Revert merge of branch_xx into Develop_xxx"
git push origin Develop_xxx
步骤 6: 创建新的 PR
如果是为了提交一个新的 PR 来撤销原 PR 的合并,你可以通过 GitHub 或 GitLab 创建一个新的 PR,针对 Develop_xxx 提交这个新的 commit。
步骤 7: 删除原 PR(如果适用)
如果原 PR 不再需要,可以选择关闭原 PR,或者删除它(这取决于你所在平台的权限和操作流程)。
这样,当前的 PR 就被成功撤销了。如果有任何问题或需要进一步澄清,请随时告诉我!