【发布时间】:2016-05-28 18:20:58
【问题描述】:
从基于团队的 Git 远程存储库中提取时,我收到以下消息:
"C:\Program Files (x86)\Git\bin\git.exe" pull --progress "origin" +refs/heads/master:refs/remotes/origin/master
Updating 71089d7..4c66e71
error: Your local changes to the following files would be overwritten by merge:
Source/Reporting/Common/Common.Dal.csproj
Please, commit your changes or stash them before you can merge.
Aborting
Done
Git 中的什么规则(或功能)确保我在工作目录中修改的文件不会被拉取覆盖?
换句话说,在什么情况下它会被拉取覆盖?或者...我需要做什么才能强制拉动覆盖我刚刚修改的文件?
【问题讨论】:
-
正如消息所示,您已经对文件进行了一些更改,但您没有将这些更改提交到您的存储库。其他人对同一个文件进行了更改,当您尝试从远程存储库中提取最新版本时,由于被其他人的更改覆盖,您将丢失对文件所做的任何本地更改。如果您想保留所做的更改,请在拉取之前将更改提交到存储库,然后尝试合并:
git merge origin/master。如果您不关心这些更改,可以放弃它们:git stash drop。 -
不确定我是否回答了您的所有问题,因此我将其添加为评论而不是回答。如果这个答案足够,请告诉我,我会将其转换为答案。谢谢!
-
@Tacocat 谢谢。我真正感兴趣的是保持我的更改本地 而不将其提交到共享存储库。如何确保不会发生合并/覆盖?
-
有办法做到这一点。我会发布一个答案,@datps