结帐到主分公司时,我得到了:
错误:以下未跟踪的工作树文件将被checkout覆盖:
nbproject/private/config.properties
nbproject/private/private.properties
nbproject/private/private.xml
nbproject/project.properties
nbproject/project.xmlRun Code Online (Sandbox Code Playgroud)Please move or remove them before you can switch branches. Aborting
所以我删除了它们(我将这些文件备份在repo之外的其他地方),然后我又能够切换了.
我得到这个的原因是因为:
dev忽略了那些文件.master不是,因为那里没有.gitignore文件.
他们都应该忽略这些文件.
另外,当我将其推送到远程回购时,这些更改也应该传播给那些远程回购.
我们如何将.gitignore文件添加到主服务器中,以便不再发生这种情况?
添加.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."
Run Code Online (Sandbox Code Playgroud)
您可能需要在所有受影响的分支上执行相同操作.
但是,你还有其他事情要做.事实上git告诉你这些文件是阻碍的,并不是因为它们在你的主分支上被忽略了......这是因为它们已经被提交到你的主分支了.现在,他们现在受版本控制.我认为您不仅需要忽略它们,还可能将它们从版本控制中删除.这可能是你可能希望与你的团队协调的事情,这样主人就知道文件会消失,他们可以预先备份它们.
更新:MEM和我聊了聊这个.我们最终通过制作另一个克隆来修复他的存储库,检查master,从他的dev分支(via git show dev:.gitignore > .gitignore)添加.gitignore ,然后将该修订版本提取回他的原始项目(via git fetch /path/to/fix master:master).一旦他有了新版本,我们就把它推到了遥控器上,所以其他人都会拥有它.