结帐到主分店时,我得到了:
错误:将覆盖以下未跟踪的工作树文件 通过结帐:
nbproject文件/私营/ config.properties
nbproject文件/私营/ private.properties
nbproject文件/私营/ private.xml
nbproject文件/ project.properties
nbproject / project.xmlPlease move or remove them before you can switch branches. Aborting
所以我删除了它们(我在repo之外的其他地方备份了这些文件),然后我又能够切换了。
我得到这个的原因是因为:
dev忽略了那些文件。 master不是,因为那里没有.gitignore文件。
他们都应该忽略这些文件。
另外,当我将其推送到远程回购时,这些更改也应该传播给那些远程回购。
我们如何将.gitignore文件添加到主文件中,以免再次发生?
答案 0 :(得分:5)
添加.gitignore
文件与添加任何其他文件相同。创建它,以及要忽略它的内容,然后添加并提交它。您可以使用以下命令忽略这些文件:
echo /nbproject/private/config.properties >> .gitignore
echo /nbproject/private/private.properties >> .gitignore
echo /nbproject/private/private.xml >> .gitignore
echo /nbproject/project.properties >> .gitignore
echo /nbproject/project.xml >> .gitignore
git add .gitignore
git commit -m "Add some ignores."
您可能需要在所有受影响的分支上执行相同操作。
但是,你还有其他事情要做。事实上git告诉你这些文件是阻碍的,并不是因为它们在你的主分支上被忽略了......这是因为它们已经被提交到你的主分支了。现在,他们现在受版本控制。我认为您不仅需要忽略它们,还可能将它们从版本控制中删除。这可能是你可能希望与你的团队协调的事情,这样主人就知道文件会消失,他们可以预先备份它们。
更新:MEM和我聊了聊。我们最后通过制作另一个克隆来修复他的存储库,检查master,从他的dev分支添加.gitignore(通过git show dev:.gitignore > .gitignore
),然后将该修订版本提取回原始项目(通过git fetch /path/to/fix master:master
) 。一旦他有了新版本,我们就把它推到了遥控器上,所以其他人也都会有它。