我尝试从 GitHub 中提取一个我正在协作的项目,但收到以下错误:
your local changes to the following files would be overwritten by merge
我尝试通过以下方式合并: git mergetool {文件路径}
但它只是响应“文件不需要合并”。
如果我尝试先推送更改,我会收到:
To prevent you from losing history, non-fast-forward updates were rejected.
我可能缺少什么?
最佳答案
您在问题中引用了以下错误消息:
your local changes to the following files would be overwritten by merge
此错误消息本质上是说 git 正在阻止您丢失工作。您的工作树中有一些尚未提交的更改,并且拉取将修改这些文件 - 这可能最终导致您丢失本地更改。一旦您提交了对这些文件的更改,拉取就会起作用。 (或者,您可以跳过 git pull 的“获取”阶段,只运行 git merge origin/master 再次尝试合并阶段。) Martin Ogden's answer给出了使用 git stash
作为替代方案的示例,如果您尚未准备好提交工作,则更适合。
后一个错误消息是:
To prevent you from losing history, non-fast-forward updates were rejected.
基本上,只有当您要推送的提交已经包含您要推送到的分支的历史记录时,您才可以推送。通常的解决方案是先拉。这是另一个阻止您丢失工作的错误消息 - 您(通常)不会希望清除其他人推送到该分支的工作。
关于github - 从 GitHub 拉取时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7545307/