git说切换分支时“以下未跟踪的工作树文件将被checkout覆盖”

时间:2011-07-26 11:59:31

标签: git

我在远程裸仓库 develop 中有一个名为 hub 的分支,我有develop的结帐副本我的本地git存储库中的分支(用户 poomalai )。

我已从另一个结帐副本(用户 git rm --cached )中删除(Mydirectory/myfile.php)文件(raj),然后将其推送至中心存储库。< / p>

现在,当我将更改从集线器拉到(用户 poomalai )时,它工作正常,我在git日志中有提交消息file deletion

我已将该文件添加到(用户 .gitignore )的poomalai文件中。
现在我已在本地仓库中创建了该文件(用户 poomalai )。

现在文件不再存在于版本控制中,git不会跟踪文件的更改。

但是当我尝试切换到其他分支时,它会说:

  

错误:以下未跟踪的工作树文件将被checkout覆盖:
      Mydirectory/myfile.php
      请在移动分支之前移动或移除它们       中止

当我使用linux rm命令删除文件时,我可以切换分支 如果我再次创建文件,它会再次抛出相同的错误 我需要将文件放在目录中,但不应该由git跟踪。

我尝试了以下命令:

git rm  
  

致命:pathspec'anilbor_webservice / dbconnect.php'与任何文件都不匹配

git gc
git reset --hard HEAD
git pull

没有任何作用。请有人帮帮我

3 个答案:

答案 0 :(得分:8)

这是可能的,因为文件被添加到'目标分支'中的仓库中 确保文件从“目标分支”git rm编辑,然后尝试切换分支。

正如@CharlesB所说,git会确保数据完整性,以便在切换目录时不会丢失任何内容。

答案 1 :(得分:4)

git警告你这件事是件好事,因为切换到没有删除文件的分支将...删除它。
所以你做得对:在检查一个已删除它的分支之前删除(或重命名)它。

因此,git会在覆盖之前关心您的数据 由于它没有版本,你将无法在结账后恢复它。

答案 2 :(得分:0)

唯一对我有用的事情是:

在android studio中 - 去活动日志 - 点击“查看”&#39;超链接。 - 然后手动点击减号栏以删除弹出窗口中的文件。

(因为它只有4-5个文件我首先重命名了文件) 我必须做两次,因为有些项目在第一次尝试时没有删除......