错误:未跟踪的工作树文件

9
当我执行命令 git pull origin development 时,出现了错误:
error: Untracked working tree file '<path-to-file>' would be overwritten by merge

原因是我的本地项目中未将位于远程开发分支中的一个文件放入git(我不想将该文件纳入版本控制,因此使用了git rm命令)。但在远程开发分支中,这个文件被纳入了版本控制。
如何解决这个问题?基本上,我希望远程分支也从版本控制中删除该文件。

1
可能是 https://dev59.com/i3NA5IYBdhLWcg3wAI7e 的重复问题。 - vpatil
4个回答

5
为了解决您的立即问题,您应该备份本地文件,删除原始文件,从远程分支拉取,然后进行 git rm 操作(紧接着是 push 操作,以确保远程仓库也删除该文件)。然后,您可以将备份文件放回本地,并在 .gitignore 文件中添加一行。

问题发生在执行 git pull 命令时。 - Leem.fin
1
我会编辑我的回答。你需要做的是删除本地未跟踪的副本。问题在于远程存在一个文件,但本地不存在。Git 不允许你覆盖本地未跟踪的文件。 - Peter Bratton

2

这是由于一个未被追踪的文件将会被来自拉取请求中的新文件覆盖所引起的。

我的建议是:

git add .
git stash
git pull

基本上将未跟踪的文件添加到您的git仓库中并将其藏起来,然后拉取新版本。


0

正如@vpatil 所链接的那样,我在这个有点相关的git问题上发现了以下建议:@mtkumar82建议执行以下操作:

git fetch --all
git reset --hard origin/{{your branch name}}

这对我非常有效,因为我有一些未跟踪的文件,它们对代码本身并不重要,所以它们是未跟踪的,我不关心它们的版本。我希望这能帮助未来遇到这个问题的人,而不是像我一样进入其他更大的线程(事实上,谷歌甚至没有显示这个,我是在找到解决方案后才发现它的)。

-1

“.gitignore” 在这里不起作用。这不是 OP 的问题:他/她之前已经添加了一个文件,因此将其添加到“.gitignore”中也无济于事。 - Edward Newell

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