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

我试过:

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 repo 中的未追踪和修改的文件产生任何影响(我尝试了上述所有选项)。

幸运的是,我没有其他我照顾的分支。

xkcd: Git

其他回答

以前的答案假设要重新设置的分支是当前的分支(检查出来)。在评论中,OP hap497澄清了分支实际上被检查出来,但这不是原始问题明确要求的。 由于至少有一个“重复”问题,重新设置分支完全到存储状态,这并不假设分支被检查出来,这里有一个替代方案:

git update-ref refs/heads/mybranch myremote/mybranch

這種方法讓檢查的分支如同它一樣,工作樹不受觸摸,它只是將分支的頭轉移到另一個承諾,無論是第二個論點,這是特別有用的,如果多個分支需要更新到新的遠方頭。

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

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

这里的顶级评分答案并没有像预期那样重新设置我的本地代码。

如今,主人通常是主要的它不做任何事情与未追踪的文件你可能在周围撒谎

而不是:

检查您的默认远程分支的名称(这不是一个 git 事,所以在 GitHub 中检查)然后在下面的步骤4中取代主或主,以此保存当前事物 git stash -u 更新从远程 git fetch 起源重新设置到远程默认分支(但参见上面的步骤1) git 重新设置 --hard 起源/main

如果你有像我这样的问题,你已经做了一些改变,但现在,出于任何原因你想摆脱它,最快的方式是使用 git 重新设置如下:

git reset --hard HEAD~2

我有2不需要的订单,因此第2号,你可以将其更改到自己的订单数量重新设置。

所以回答你的问题 - 如果你有5个承诺在远程存储头,你应该运行这个命令:

git reset --hard HEAD~5

请注意,你会失去你所做的改变,所以要小心!

确保远程存储库的起源,并且您对分支_name感兴趣:

git fetch origin
git reset --hard origin/<branch_name>

此外,您将重新设置现有起源分支到头部。

git fetch origin
git reset --hard origin/HEAD

它是如何工作的:

git fetch 起源从远程下载最新的,而无需尝试合并或拆除任何东西。

然后 git 重新设置将 <branch_name> 分支重新设置为您刚刚抓住的。 --hard 选项将您的工作树中的所有文件更改以匹配原始/branch_name 中的文件。