Git - 用远程分支替换本地分支

Git - replace local branch with remote branch

我知道有人问过这个问题,但我似乎无法用我的远程分支完全替换我的本地分支。我在我的本地分支中安装了一个第三方插件,但在删除安装时遇到了问题;因此,我想 "start over" 与分支的远程版本。该分支在本地称为 "dev",在远程称为 "origin/dev"。我尝试了三种用远程版本替换本地分支的方法:

1. git reset HEAD --hard

2. git reset --hard origin/dev

3. git checkout dev
   git fetch
   git reset --hard origin/dev

但是在执行上述git命令后查看本地代码,我仍然可以看到插件遗留的文件和文件夹。

使用git status,我得到"Your branch is up-to-date with 'origin/dev'. Nothing to commit, working directory clean".

使用 git status --ignored,我得到的文件太多无法列出...我认为基本上我的 .gitignore 文件中的所有内容。

我只想要存在于远程开发分支中的代码,没有别的。

有人可以帮忙吗?

更新:

原来我遇到的错误是由于目录 root/var/cache/* 中的一堆文件造成的。我的 .gitignore 文件包含以下条目:

/var/*
!/var/package
var/session/*

尝试从远程恢复本地 dev 分支的可能方法(在上面的问题以及下面建议的解决方案中列出),root/var/cache 目录仍然存在;在我的应用程序再次开始运行之前,我不得不手动删除它。查看 github,远程开发分支不包含 'root/var/cache. Can anybody tell me whyroot/var/cache` 没有响应 git 命令替换本地分支使用远程版本?

尝试git clean -fx。这将删除所有未跟踪的文件,即使它们在 .gitignore.

中被提及

从另一个分支(比如 master),重置你的开发分支:

git branch -f dev origin/dev

然后,检查开发并清理您的额外文件:

git checkout dev
git clean -d -f