将本地代码库分支重置,使其与远程代码库的HEAD完全相同。
将本地代码库分支重置,使其与远程代码库的HEAD完全相同。
我怎样才能将本地分支重置为与远程仓库上的分支完全相同?
我尝试了:
git reset --hard HEAD
但是git status
声称我有修改的文件:
On branch master Changes to be committed: (use "git reset HEAD ..." to unstage) modified: java/com/mycompany/TestContacts.java modified: java/com/mycompany/TestParser.java
admin 更改状态以发布 2023年5月21日
我需要执行(接受答案中的解决方案):
git fetch origin git reset --hard origin/master
接下来:
git clean -f
查看将要被删除的文件(但不会实际删除):
git clean -n -f
把你的分支与远程分支完全匹配可以通过以下两步完成:
git fetch origin git reset --hard origin/master
如果你想在此之前保存当前分支的状态(以防万一),你可以这样做:
git commit -a -m "Saving my work, just in case" git branch my-saved-work
现在你的工作已经在分支“my-saved-work”上保存,以防你决定要它回来(或以后要查看或与更新的分支进行比较)。
请注意,第一个示例假定远程repo的名称为“origin”,在远程repo中命名为“master”的分支与您本地repo中当前检出的分支匹配。
顺便说一句,你目前的情况看起来很像一个普遍的情况,即在非裸库的当前检出分支中进行了推送。你最近有在本地repo中进行过推送吗?如果没有,那就不用担心——其他原因必须导致这些文件意外地被修改。否则,你应该知道不推荐向非裸库(特别是当前检出的分支)进行推送。