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

我试过:

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

其他回答

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

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

一个停止的答案是:

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

首先,请使用 git 状态检查您是否有任何本地变更。

然后执行:

git fetch
git reset --hard @{push}

它将重新设置当前的本地分支到相同的远程分支,将用于 git push. 这特别有用,当 git config push.default 电流设置时. 例如,当您的分支是 abc 和远程是起源时,它将重新设置为起源/abc。

请参见 Git 评论,了解更多关于 @{push} 的详细信息

git reset --hard HEAD 实际上只会重新设置到最后的承诺状态. 在这种情况下, HEAD 指的是您的分支的 HEAD。

如果你有几个承诺,这不会工作。

你可能想做的事情,是重新设置到起源头或你远程存储所叫什么。

git reset --hard origin/HEAD

但是要小心. 硬重新设置不能轻易失去. 最好按照 Dan 建议做,并在重新设置之前将您的更改复制。

我做了:

git branch -D master
git checkout master

完全重新设置分支


注意,您应该检查到另一个分支,以便能够删除所需分支。

使用下面的命令. 这些命令将从本地 git 删除所有未追踪的文件

git fetch origin
git reset --hard origin/master
git clean -d -f