1、终极解决方法:放弃本地的所有更改,使用远程分支重置/覆盖所有内容:
git fetch --all # 从远程下载最新版本,不会尝试合并或重新设置任何内容
git reset --hard <remote>/<branch_name> # --hard选项更改工作树中的所有文件,来匹配远程分支中的文件。
参考:如何使用 Git Pull 覆盖本地文件 (freecodecamp.org)
2、详细的分不同阶段来重置的方法,分为unstaged、staged、commit
unstaged:只是刚刚改动后保存了,但没有使用git add的那些文件,使用git restore <file_name | .>可以使文件恢复到上次提交时的状态。
staged: 已经使用git add添加到staging area了,此时使用 git reset <file_name | .>(此方法似乎已不能使用)来unstag它们,然后再git restore <file_name | .>来放弃对它们的更改(想要撤回上次commit,使用: git reset --soft head~1)
commit:当已经使用git commit提交了之后,可以使用 git reset head~n来回退n步,此时的更改会处于unstaged状态,再使用git restore <file_name | .>就可以对某些文件进行重置。
参考:Git Restore and Git Reset (academind.com)
标签:reset,git,更改,--,撤回,使用,commit From: https://www.cnblogs.com/freecheng/p/17579392.html