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

我试过:

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

当前回答

唯一的解决方案,在所有情况下工作,我已经看到的是删除和分解. 也许有另一种方式,但显然,这种方式不会留下旧状态的机会,所以我更喜欢它。

REPO_PATH=$(pwd) && GIT_URL=$(git config --get remote.origin.url) && cd .. && rm -rf $REPO_PATH && git clone --recursive $GIT_URL $REPO_PATH && cd $REPO_PATH

* 假设您的.git 文件不受腐败

其他回答

没有重新设置和清洁的数量似乎对我的本地 git repo 中的未追踪和修改的文件产生任何影响(我尝试了上述所有选项)。

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

xkcd: Git

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

git reset --hard HEAD~2

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

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

git reset --hard HEAD~5

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

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

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

而不是:

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

这个问题在这里混合了两个问题:

如何重新设置一个地方分支到远程是如何清除你的排序区域(也许是工作目录),所以 git 状态说什么不承诺,工作目录干净。

一个停止的答案是:

git fetch --prune (可选) 更新远程 repo 的本地截图. 更多命令仅是本地的. git reset --hard @{upstream} 引导本地分支指标到远程截图的位置,以及将指数和工作目录设置为该任务的文件. git clean -d --force 删除无法追踪的文件和目录,阻止 git 说“工作目录清洁”。

只有3个命令会使它工作

git fetch origin
git reset --hard origin/HEAD
git clean -f