git同步为远程仓库某分支和撤回更改
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)
本文作者:FreeCheng
本文链接:https://www.cnblogs.com/freecheng/p/17579392.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步