要撤消 git commit 并复制回远程文件,请替换本地

问题描述

如何撤消 git commit 并将远程文件复制回来,以替换打算推送但需要取消和撤消的修改过的本地文件? (注意复数)

解决方法

  • 您的 modified local files 可以用 stash 命令丢弃(git stash save --include-untracked,新文件的选项 --include-untracked)。此操作会将 repo 中的所有更改存储在存储列表中。
  • 如果你有一个提交但它是错误的,你可以通过 reset 命令撤消它。 示例:您有 3 次提交 A - B - C,当前提交是 C,并且您想删除 C,回到提交 B,您可以使用:git reset <B-commit-hash>reset 有 3 个选项:
    • hard:提交 C 中的所有更改都将被丢弃
    • soft:提交 C 的更改将在暂存区
    • mix:提交 C 的更改将在工作目录中,与当前更改(如果有)混合。

重置后,您的本地存储库将 B 提交作为最新提交。这一次,您的本地存储库可以与远程存储库不同。

  • 如果您确定这项工作正常,您可以使用 git push --force 推送到远程。 force 选项将覆盖与您的本地存储库相同的 the history commit-graph
  • 如果您想更新与远程存储库相同的本地存储库,您可以使用 git pull

希望对你有帮助