问题

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

我做了:

 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
 

请告诉我为什么我有这些“修改”?我没有触摸这些文件?如果我这样做,我想删除它们.

  最佳答案

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

 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” 上,以防您决定返回它(或者希望稍后查看它或者将其与更新的分支进行对比)。

请注意,第一个例子假设远程回购的名称是“原产地”,远程回购中名为“主”的分支与本地回购中目前的checked-out分支匹配.

顺便说一句,您所处的这种情况看起来非常像一个常见的例子,在这种情况下,推送已经完成到非裸存储库的当前已检出的分支.您最近是否推进到您的本地仓库?如果没有,那么没有担心 – 其他的东西必须导致这些文件意外地最终被修改.否则,您应该意识到它不建议推送到非裸存储库(而不是推送到当前的checked-out分支,特别是).

  相同标签的其他问题

gitundo
上一个问题:
下一个问题: