主分支上缺少gitignore - 如何"修复"它?

MEM*_*MEM 0 git

结帐到主分公司时,我得到了:

错误:以下未跟踪的工作树文件将被checkout覆盖:
nbproject/private/config.properties
nbproject/private/private.properties
nbproject/private/private.xml
nbproject/project.properties
nbproject/project.xml

Please move or remove them before you can switch branches.  

Aborting
Run Code Online (Sandbox Code Playgroud)

所以我删除了它们(我将这些文件备份在repo之外的其他地方),然后我又能够切换了.

我得到这个的原因是因为:

dev忽略了那些文件.master不是,因为那里没有.gitignore文件.

他们都应该忽略这些文件.

另外,当我将其推送到远程回购时,这些更改也应该传播给那些远程回购.

我们如何将.gitignore文件添加到主服务器中,以便不再发生这种情况?

Joh*_*ter 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."
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).一旦他有了新版本,我们就把它推到了遥控器上,所以其他人都会拥有它.