将本地代码库分支重置,使其与远程代码库的HEAD完全相同。

22 浏览
0 Comments

将本地代码库分支重置,使其与远程代码库的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日
0
0 Comments

我需要执行(接受答案中的解决方案):

git fetch origin
git reset --hard origin/master

接下来:

git clean -f

删除本地文件

查看将要被删除的文件(但不会实际删除):

git clean -n -f

0
0 Comments

把你的分支与远程分支完全匹配可以通过以下两步完成:

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中进行过推送吗?如果没有,那就不用担心——其他原因必须导致这些文件意外地被修改。否则,你应该知道不推荐向非裸库(特别是当前检出的分支)进行推送。

0