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

我试过:

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 fetch upstream develop;
git reset --hard upstream/develop;
git clean -d --force;

請注意,這是一個很好的做法,不做變化到您的當地主/開發分支,但相反,支票到另一個分支,任何變化,與分支名稱由變化類型,例如 feat/, chore/, fix/,等,所以你只需要拖動變化,不推任何變化從主。

git remote --verbose

git checkout develop;
git commit -m "Saving work.";
git branch saved-work;
git fetch upstream develop;
git reset --hard upstream/develop;
git clean -d --force

git add .
git commit -m "Reset to upstream/develop"
git push --force origin develop

git merge -s recursive -X theirs develop

使用时

git merge -s recursive -X ours develop

与所有的变化相结合:

git commit -m "Saving work.";
git branch saved-work;
git checkout develop;
git fetch upstream develop;
git reset --hard upstream/develop;
git clean -d --force;
git add .;
git commit -m "Reset to upstream/develop";
git push --force origin develop;
git checkout branch_name;
git merge develop;

请注意,而不是上流/开发,您可以使用一个承诺标签,其他分支名称等 使用一个 CLI 工具,如 Oh My Zsh 检查您的分支是绿色的,表明没有什么承诺和工作目录是干净的(这是确认或也可以通过 git 状态验证)。

如果你有像我这样的问题,你已经做了一些改变,但现在,出于任何原因你想摆脱它,最快的方式是使用 git 重新设置如下:

git reset --hard HEAD~2

我有2不需要的订单,因此第2号,你可以将其更改到自己的订单数量重新设置。

所以回答你的问题 - 如果你有5个承诺在远程存储头,你应该运行这个命令:

git reset --hard HEAD~5

请注意,你会失去你所做的改变,所以要小心!

如果您不关心节省本地更改,但仍然希望更新您的存储库以匹配起源/头,您可以简单地插入本地更改,然后拖动:

git stash
git pull

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

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

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

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

扔错误,因为它没有进行更改。

所以,你可以使用 git stash

这将保存未完成的更改,以便以后使用,然后将其从工作副本中逆转。 如果您想要这些更改,您可以使用 git stash 应用程序

您可以使用 git pull。

这需要最近的代码从远程 repo。