方法一:撤销提交并重新提交到正确分支

  1. 撤销错误分支的提交(保留更改):

    1
    git reset --soft HEAD~1
    • --soft 会撤销提交,但保留更改在暂存区(已 git add 的状态)。
  2. 暂存更改(可选)
    如果上一步已保留在暂存区,可跳过此步。否则:

    1
    git stash
  3. 切换到正确的分支

    1
    git checkout correct-branch
  4. 提交更改

    1
    git commit -m "Your commit message"

方法二:直接复制提交到正确分支(推荐)

  1. 记录错误分支的提交哈希值

    1
    git log  # 找到类似 `commit abc123` 的哈希值
  2. 切换到正确的分支

    1
    git checkout correct-branch
  3. 复制提交到当前分支

    1
    git cherry-pick <commit-hash>
    • 例如:git cherry-pick abc123
  4. 返回错误分支并删除提交

    1
    2
    git checkout wrong-branch
    git reset --hard HEAD~1 # 强制丢弃错误的提交

注意事项:

  • 冲突处理:如果 cherry-pick 或切换分支时发生冲突,需手动解决冲突后执行 git addgit commit
  • 确认分支状态:操作前用 git statusgit log 确认所在分支和提交历史。
  • 未推送的提交:以上操作仅影响本地仓库,确保错误提交未推送到远程。

完成后,检查 correct-branch 的提交历史即可确认更改已正确应用。