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

我试过:

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 checkout -b feature-branch
git branch -f master origin/master

其他回答

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

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

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

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

确保远程存储库的起源,并且您对分支_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 中的文件。

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

git fetch origin
git reset --hard origin/master

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

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

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

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

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

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

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

git reset --hard origin/HEAD

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

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

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