使用Cloud9并遇到问题,因为.c9文件夹已添加到git中。试图删除它。在我可以合并到主分支之前,Git要求我删除文件。当我尝试删除它时,git告诉我该文件不存在。
erikvdw@blog:~/workspace (master) $ git merge Post_initial_setup
error: The following untracked working tree files would be overwritten by merge:
.c9/metadata/workspace/.gitignore
Please move or remove them before you can merge.
Aborting
erikvdw@blog:~/workspace (master) $ git rm .c9/metadata/.gitignore --cache
fatal: pathspec '.c9/metadata/.gitignore' did not match any files
答案 0 :(得分:0)
过去我试图解决这个问题:
error: The following untracked working tree files would be overwritten by merge:
index.php
Please move or remove them before you can merge.
我被告知发生这种情况的最常见原因是因为您进行了本地修改,这使得合并无法实现。
我已经读过其中一个解决方案是重置回头:
git reset --hard HEAD
再拉一次:
git pull
您还可以考虑先提交或存储您自己的更改。
查看Git pull - error: The following untracked working tree files would be overwritten by merge:可能会有所帮助,它给了我一个很好的基本想法。
答案 1 :(得分:0)
我不清楚你是否想要这个.c9
子目录 - 或者更确切地说,它的部分或全部文件 - 是否受版本控制:
因为.c9文件夹已添加到git。
(“它已被添加”,但不是 任何人,它只是神秘地出现!:-)显然有人或某事添加并承诺;谁和为什么?)同时:
.c9/metadata/workspace/.gitignore
这个文件的存在表明你做希望这里的文件至少有一些,但可能不是全部, 1 是版本控制的。
通常情况下,如果你做想要那个,你也希望相应的.gitignore
文件也受版本控制,即它应该是“跟踪文件”,而不是“未跟踪文件”。这样,克隆此存储库的每个人都将获得正确的.gitignore
文件,以避免版本控制特定文件。
(请记住,我对这个Cloud9 IDE一无所知,所以我无法判断.c9
中版本控制内容是好还是坏。)
如果您 想要部分或全部.c9
跟踪和版本控制,包括.c9/metadata/workspace/.gitignore
,那么您只需要添加并提交此文件(也许还有一些)在合并其他人的分支之前,您自己的分支中的所有其他.c9
文件),其中他们还添加并提交了.gitignore
文件(可能还有其他部分或全部.c9
文件)。
如果不希望跟踪和版本控制,则需要:
然后根据步骤(2)的结果采取措施。
1 “可能”这个词在这里,因为通常的做法是在目录中提交一个空的.gitignore
文件,以强制git创建目录。一个空的.gitignore
文件告诉git,当git去抱怨需要添加的未跟踪文件时,它应该不抱怨的文件列表 - 即应该忽略 - 是空的
换句话说:“请注意未跟踪的文件,除了这个空的名单列表”=> “请抱怨所有未跟踪文件”。在这种情况下,.gitignore
的存在是red herring:它被用作虚拟空文件,仅用于创建目录的副作用。
答案 2 :(得分:0)
由于您希望忽略整个.c9文件夹,因此将.gitignore文件保留在其中是没有意义的。只需在workspace / repo根文件夹中更新/创建.gitignore文件,并添加一行以忽略.c9
文件夹。 (我假设你已经完成了,因为git说您的.c9 / metadata / .gitignore文件未被跟踪)。
错误正在发生,因为您已经提交了.c9文件夹,里面有.gitignore文件。现在由于更新的全局.gitignore文件,当前.c9/metadata/.gitignore
未跟踪,但之前已跟踪。既然你不再想要保留它,我认为可以安全地删除.c9/metadata/.gitignore
文件,而不仅仅是从git(现在它不存在,因此它不存在,因此错误),但是从文件系统,所以rm .c9/metadata/.gitignore
。 (或者你可能想将它移动到git repo之外的另一个文件夹)。对要取消跟踪的其他文件重复类似的步骤。
希望这有帮助。