使用git,我该如何删除本地对远程分支的拷贝?或者至少在不合并的情况下进行拉取?

17
另一个开发者删除并重建了一个名为“ development”的远程分支,而我已经有了一个已检出的副本。他这样做是为了清理它。这很好。
但是当我执行“git pull origin development”时,它一直出现合并冲突。然而,我不想要我拥有的内容,我只想要源头上的内容。
那么我该如何删除本地副本并重新拉取它?或者至少在拉取时不将我的本地信息合并到其中?
3个回答

23

从远程仓库获取最新更改。这一步是你在问题中要求的“不合并拉取”步骤。git pull 等同于 git fetch 后跟 git merge

$ git fetch origin

如有必要,请切换到一个干净的分支。

$ git stash

如果您还没有在开发分支上,请使用一个干净的分支切换到开发分支。

$ git checkout development

最后,强制使你的本地开发分支指向与远程相同的提交。
$ git reset --hard origin/development

在使用git reset --hardrm -rf之前,请三思而后行。这是一种锋利、有用的工具,但如果不小心使用,它可能会破坏你的工作。


2
太棒了,这正是我在寻找的。我已经从一个中性状态开始工作了,所以我不需要stash,也不担心会丢失任何工作。太棒了! - Patrick

19
要永久删除本地分支,请执行以下操作:
git branch -D <branch-name>

从远程仓库获取更改,但不进行合并:
git fetch

现在创建并检出一个本地副本,跟踪远程分支:
git checkout -b development origin/development

git应该告诉你“分支开发已设置为跟踪来自原始的远程分支开发”,并且本地已切换到开发分支。

2
你为什么要更新主分支?(你是不是想说:“git fetch”?) - Jonas Schäfer

1

虽然链接可能回答了问题,但最好在链接失效时包含相关细节。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接