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

我试过:

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 clean -d -f

已被低估(d 删除目录) 谢谢!

其他回答

这是我经常面对的事情,我已经普遍化了上面的Wolfgang脚本,以便与任何分支工作。

我还添加了一个“你确信”的提示,以及一些反馈结果

#!/bin/bash
# reset the current repository
# WF 2012-10-15
# AT 2012-11-09
# see http://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"`
branchname=`git rev-parse --symbolic-full-name --abbrev-ref HEAD`
read -p "Reset branch $branchname to origin (y/n)? "
[ "$REPLY" != "y" ] || 
echo "about to auto-commit any changes"
git commit -a -m "auto commit at $timestamp"
if [ $? -eq 0 ]
then
  echo "Creating backup auto-save branch: auto-save-$branchname-at-$timestamp"
  git branch "auto-save-$branchname-at-$timestamp" 
fi
echo "now resetting to origin/$branchname"
git fetch origin
git reset --hard origin/$branchname

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

所以,你可以使用 git stash

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

您可以使用 git pull。

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

这里的顶级评分答案并没有像预期那样重新设置我的本地代码。

如今,主人通常是主要的它不做任何事情与未追踪的文件你可能在周围撒谎

而不是:

检查您的默认远程分支的名称(这不是一个 git 事,所以在 GitHub 中检查)然后在下面的步骤4中取代主或主,以此保存当前事物 git stash -u 更新从远程 git fetch 起源重新设置到远程默认分支(但参见上面的步骤1) git 重新设置 --hard 起源/main

答案

git clean -d -f

已被低估(d 删除目录) 谢谢!

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

git fetch origin
git reset --hard origin/master

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

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

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

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