合并时发生Git错误

合并时发生Git错误,git,Git,我在本地的git repo中有很多未跟踪的文件。有人不小心推了很多未跟踪的文件。现在,我想合并“原始/母版”并接收: 错误:签出操作将覆盖以下未跟踪的工作树文件 我希望未跟踪的文件作为未跟踪的文件保留在我的repo中,我不想删除它们。文件不应位于源/主文件上。从我的角度来看,有什么优雅的方法可以解决这个问题吗?干净的方法是将repo克隆到单独的目录,从存储库中删除未跟踪的文件(或恢复提交),推送,删除克隆的存储库。您可以将文件提交到本地分支。您可以稍后通过切换到另一个分支并执行git reset

我在本地的git repo中有很多未跟踪的文件。有人不小心推了很多未跟踪的文件。现在,我想合并“原始/母版”并接收:

错误:签出操作将覆盖以下未跟踪的工作树文件


我希望未跟踪的文件作为未跟踪的文件保留在我的repo中,我不想删除它们。文件不应位于源/主文件上。从我的角度来看,有什么优雅的方法可以解决这个问题吗?

干净的方法是将repo克隆到单独的目录,从存储库中删除未跟踪的文件(或恢复提交),推送,删除克隆的存储库。

您可以将文件提交到本地分支。您可以稍后通过切换到另一个分支并执行
git reset HEAD^
(不使用
--hard
选项!)来恢复文件。一旦恢复了未跟踪的文件,就可以再次签出(希望已修复)主控文件,并且未跟踪的文件应该仍然存在


但是为什么不先恢复另一个人的改变呢?当然,它已经被推了,但他也可以推它。那么你也应该没事了。

以下步骤如何:

关于我当地的主人:

git stash --include-untracked

git reset --hard origin/master # (origin/master is fetched and it has all of the unnecessary files)

git rm {all of the unnecessary files that were pushed accidentially}
编辑.gitignore以包含所有不希望跟踪的文件

git add .gitignore

git commit

git push
现在,我在本地主机和origin/master上没有任何未跟踪的文件

我可以通过以下方式取回未跟踪的文件:

git stash apply

您认为如何?

您能否以可以添加到.gitignore的方式组织未跟踪的文件?这样你就不必担心他们将来会不小心犯下错误。我已经做到了,但有些人没有做到。@LucasSmith如果你的
.gitignore
,那么一旦犯下错误,每个人都会得到它。或者让犯错误的人去做