小编典典

将本地存储库分支重置为就像远程存储库 HEAD

git

如何将我的本地分支重置为就像远程存储库上的分支一样?

我做了:

git reset --hard HEAD

但是当我运行一个git status,

On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
      modified:   java/com/mycompany/TestContacts.java
      modified:   java/com/mycompany/TestParser.java

你能告诉我为什么我有这些“修改”吗?我没有动过这些文件?如果我这样做了,我想删除它们。


阅读 363

收藏
2022-01-07

共1个答案

小编典典

将分支设置为与远程分支完全匹配可以分两步完成:

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”分支上,以防您决定将其恢复(或想稍后查看它或将其与更新的分支进行比较)。

请注意,第一个示例假设远程仓库的名称是“origin”,并且远程仓库中名为“master”的分支与本地仓库中当前签出的分支相匹配。

顺便说一句,你所处的这种情况看起来很像一种常见的情况,其中推送已经完成到非裸存储库的当前检出分支。你最近有没有推送到你的本地仓库?如果没有,那么不用担心——一定是其他原因导致这些文件意外地被修改了。否则,您应该意识到不建议推送到非裸存储库(尤其是不要推送到当前签出的分支)。

2022-01-07