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

我试过:

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 重新设置如下:

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 中的文件。

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

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

我做了:

git branch -D master
git checkout master

完全重新设置分支


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

只有3个命令会使它工作

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