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

我试过:

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 fetch
git reset --hard @{push}

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

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

其他回答

我需要做(答案中的解决方案):

git fetch origin
git reset --hard origin/master

其次是:

git clean -f

删除本地文件

查看哪些文件将被删除(没有实际删除):

git clean -n -f

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

git reset --hard @{u}

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

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

git clean -df

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

git pull

只有3个命令会使它工作

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

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

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

一个停止的答案是:

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

上面的所有提示都是正确的,但很多时候,为了真正重新设置您的项目,您还需要删除即使是您的.gitignore 中的文件。

要从远程中删除您的项目目录和重新克隆的道德等级是:

git fetch
git reset --hard
git clean -x -d -f

警告: git clean -x -d -f 是不可逆转的,您可能会失去文件和数据(例如,您使用.gitignore 忽略的东西)。