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

标签 git git-branch git-remote

我知道有人问过这个问题,但我似乎无法用我的远程分支完全替换我的本地分支。我在我的本地分支中安装了一个第三方插件,但在删除安装时遇到了问题;因此,我想使用分支的远程版本“重新开始”。该分支在本地称为“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,我得到“你的分支是最新的'origin/dev'。没有什么可提交的,工作目录是干净的”。

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

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

有人可以帮忙吗?

更新:

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

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

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

最佳答案

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

git branch -f dev origin/dev

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

git checkout dev
git clean -d -f

关于Git - 用远程分支替换本地分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31691416/

相关文章:

git - 关于Git命令的困惑: git diff origin <branch> HEAD

amazon-web-services - 带有 git-remote-codecommit 的 AWS CodeCommit

git - 为什么 Git 不允许我从备用远程查看分支?

GIT 克隆没有获取以点开头的文件(.htaccess、.htpasswd)

Git 流程跟踪 - 已经存在

Git 删除 git 日志中的原点/分支

git - "git remote show origin": why all branches show "tracked" even when some aren't?

git - 如何在不克隆/ checkout 的情况下获取存储库上标签之间的 git diff

git - 在 git 中暂存暂存文件?

git 与 --no-ff 和 --squash merge