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

我试过:

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

其他回答

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

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

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

git reset --hard origin/HEAD

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

这里是一个自动化最受欢迎的答案的脚本... 查看 https://stackoverflow.com/a/13308579/1497139 为支持分支的改进版本

#!/bin/bash
# reset the current repository
# WF 2012-10-15
# see https://stackoverflow.com/questions/1628088/how-to-reset-my-local-repository-to-be-just-like-the-remote-repository-head
timestamp=`date "+%Y-%m-%d-%H_%M_%S"`
git commit -a -m "auto commit at $timestamp"
if [ $? -eq 0 ]
then
  git branch "auto-save-at-$timestamp" 
fi
git fetch origin
git reset --hard origin/master

您可以查找起源并重新设置以解决问题

 git fetch origin
 git reset --hard origin/main

您可以在重新设置之前保存您的更改,如下:

git stash

然后重新设置,如果你想要改变它,你可以简单地运行,

git stash apply

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

然后执行:

git fetch
git reset --hard @{push}

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

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

只有3个命令会使它工作

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