合并时Git错误

时间:2013-07-10 18:37:19

标签: git

我的本​​地git repo中有很多未跟踪的文件。有人意外地推了很多那些没有跟踪的文件。现在,我想合并origin / master并收到:

错误:以下未跟踪的工作树文件将被结帐

覆盖

我希望未跟踪的文件保留在我的回购中,因为没有跟踪,我不想删除它们。文件不应该在origin / master上。是否有任何优雅的方法可以解决我的问题?

3 个答案:

答案 0 :(得分:3)

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

但为什么不先从另一个人那里恢复变化呢?当然,它已被推,但他也可以推动恢复。那你再好了。

答案 1 :(得分:3)

以下步骤如何:

在我当地的主人身上:

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

您怎么看?

答案 2 :(得分:2)

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