最佳解决方法
重要提示:如果您有任何本地更改,将会丢失。无论是否有--hard
选项,任何未被推送的本地提交都将丢失。
如果您有任何未被Git跟踪的文件(例如上传的用户内容),这些文件将不会受到影响。
下面是正确的方法:
git fetch --all
然后,你有两个选择:
git reset --hard origin/master
或者如果你在其他分支上:
git reset --hard origin/<branch_name>
说明:
git fetch
从远程下载最新的,而不尝试合并或rebase任何东西。
然后git reset
将主分支重置为您刚刚获取的内容。 --hard
选项更改工作树中的所有文件以匹配origin/master
中的文件
[*]:值得注意的是,在重置之前可以通过从master
创建一个分支来维护当前的本地提交:
git checkout master
git branch new-branch-to-save-current-commits
git fetch --all
git reset --hard origin/master
在此之后,所有旧的提交都将保存在new-branch-to-save-current-commits
中。然而,没有提交的更改(即使staged)将会丢失。确保存储和提交任何你需要的东西。
转载: https://vimsky.com/article/3679.html