我如何将我的本地分支重新设置为远程存储库的分支类似?

我试过:

git reset --hard HEAD

但 git 状态声明我有修改的文件:

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 重新设置以重新设置到相应的上流分支的预定头:

git reset --hard @{u}

指定 @{u} 或其字面表格 @{upstream} 的优点是,远程 repo 和分支的名称不需要明确指定。

接下来,如有必要,使用 git clean 删除未追踪的文件,可选也使用 -x:

git clean -df

最后,如有必要,获取最新变更:

git pull

其他回答

如果你想回到工作目录和指数的 HEAD 状态,那么你应该去重新设置 --hard HEAD,而不是到 HEAD^。

至于你的具体问题,为什么这些文件出现在变更状态,似乎你做了一个软重新设置而不是一个硬重新设置。

将您的分支与远程分支相匹配,可以在两个步骤中完成:

git fetch origin
git reset --hard origin/master

如果你想在这样做之前保存你的当前分支状态(仅在这种情况下),你可以:

git commit -a -m "Saving my work, just in case"
git branch my-saved-work

现在你的工作存储在“我保存的工作”分支上,如果你决定你想要它回来(或者想稍后查看它或反对你的更新分支)。

请注意,第一个例子假设远程雷波的名称是“起源”,而远程雷波的分支称为“主”与您本地雷波的目前已检查的分支相匹配。

答案

git clean -d -f

已被低估(d 删除目录) 谢谢!

首先,使用 git 重新设置以重新设置到相应的上流分支的预定头:

git reset --hard @{u}

指定 @{u} 或其字面表格 @{upstream} 的优点是,远程 repo 和分支的名称不需要明确指定。

接下来,如有必要,使用 git clean 删除未追踪的文件,可选也使用 -x:

git clean -df

最后,如有必要,获取最新变更:

git pull

如果您不关心节省本地更改,但仍然希望更新您的存储库以匹配起源/头,您可以简单地插入本地更改,然后拖动:

git stash
git pull