问题描述
如何撤消 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
希望对你有帮助