我在远程裸仓库 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
没有任何作用。请有人帮帮我
答案 0 :(得分:8)
这是可能的,因为文件被添加到'目标分支'中的仓库中
确保文件从“目标分支”git rm
编辑,然后尝试切换分支。
正如@CharlesB所说,git会确保数据完整性,以便在切换目录时不会丢失任何内容。
答案 1 :(得分:4)
git警告你这件事是件好事,因为切换到没有删除文件的分支将...删除它。
所以你做得对:在检查一个已删除它的分支之前删除(或重命名)它。
因此,git会在覆盖之前关心您的数据 由于它没有版本,你将无法在结账后恢复它。
答案 2 :(得分:0)
唯一对我有用的事情是:
在android studio中 - 去活动日志 - 点击“查看”&#39;超链接。 - 然后手动点击减号栏以删除弹出窗口中的文件。
(因为它只有4-5个文件我首先重命名了文件) 我必须做两次,因为有些项目在第一次尝试时没有删除......