Git警告由于(假定)未跟踪的文件而导致文件覆盖

Git警告由于(假定)未跟踪的文件而导致文件覆盖,git,Git,试图从git回购中提取,但得到以下输出。我认为这些文件是被跟踪的(应该是这样),但这表明它们不是。他们不在。请忽略。我在分行后面大约5-10分钟 git pull --rebase origin master From github.com:user/Project * branch master -> FETCH_HEAD First, rewinding head to replay your work on top of it... error: Th

试图从git回购中提取,但得到以下输出。我认为这些文件是被跟踪的(应该是这样),但这表明它们不是。他们不在。请忽略。我在分行后面大约5-10分钟

git pull --rebase origin master
From github.com:user/Project
 * branch            master     -> FETCH_HEAD
First, rewinding head to replay your work on top of it...
error: The following untracked working tree files would be overwritten by checkout:
mountdoom/protected/models/UserHelper.php
mountdoom/protected/models/UserRegistrationForm.php
mountdoom/protected/runtime/state.bin
mountdoom/protected/views/site/register.php
Please move or remove them before you can switch branches.
Aborting
could not detach HEAD

有什么办法解决这个问题吗?

它们会在您要签出的版本中被跟踪,但不会在您以前签出的版本中被跟踪。如果您不关心未跟踪的版本,只需删除它们


如果你真的关心他们,那么在做重定基础之前就把他们提交给你。然后,您可能需要合并作为重新基址过程的一部分。

您可以将未跟踪的文件添加到索引(
git add
),
git stash
将它们隐藏起来,然后执行
git pull--rebase
,然后执行
git stash pop
并解决任何冲突。

如果您只是想像我一样删除文件,可以运行

rm `git merge 2>&1 | sed "s/^[^\t].*/ /g" `

(您可能希望首先使用echo而不是rm来运行它以验证结果)

因此,出现此问题的一种情况是,文件已被删除,但您仍然拥有它的副本。出于某种原因,git无法理解它

这些建议对我都不管用

最后,我可以通过
git rm filename
git commit-m“temporary commit”
,然后
git pull--rebase
来修复它

在这一点上,git再次抱怨,然后我不得不添加要跟踪的文件,
git add filename
git commit-m“temporary commit2”
,然后
git pull--rebase


然后一切顺利。我看不到我的临时提交,因为它们相互抵消。

git merge没有'-f'option@Jamie是的。git pull可以,但您是对的,它不适用(似乎只适用于获取部分)。在某些情况下,甚至不需要第一部分。您需要做的就是:'git add filename','git commit-m“temporary commit2',然后是'git pull--rebase'。用法:rm[-f |-I][-dPRrvW]file。。。取消链接文件