2014-01-31 128 views
15

我正与另一位开发人员合作,我们似乎已将自己融入了GIT泡菜。 我定期提交代码并定期推送给远程主服务器。我的同事(虽然是一个伟大的人和开发人员)并没有养成这样做的习惯,当我今天早上去拉头修改时(正如我的习惯),我遇到了以下错误消息:无法在Visual Studio 2013中同步Git

由于存在未提交的更改,因此无法拉取。再次提交之前提交或撤消更改。详情请看输出窗口。

然后我注意到有5个传入的提交可追溯到5天前。我没有任何地方承诺,也没有阶段性变化。

我试过同步,拉和其他所有我可以在VS界面无济于事。

有没有其他人经历过这一点,他们可以帮助我解决它。

感谢

+2

如果您转到命令行并运行'git status' - 您是否看到任何挂起的更改?尝试和命令行运行'git reset --hard'来摆脱任何改变(如果你认为你不需要它们,然后尝试'git pull'。 –

+0

我运行git status。它注意到我的分支和主我注意到我有1次提交,主人每次提交了5次提交,我只通过改变1个文件在本地添加了1次提交,看本地提交是否有帮助,否则我可能会失去本地提交。我想要吹掉我同事的5次提交,还注意到有一堆没有跟踪的文件,它已经知道,我们不想跟踪那些。如果我做了一个git reset --hard,我会失去5远程/传入提交? – onefootswill

+0

没有'git reset --hard'是回滚任何未提交的git文件,这是为了解决'无法拉,因为有未提交的更改',它不会触及提交如果您在分支'master',只要运行'git pull',你的本地提交和5个提交上游就会合并(不是一个,而是6个独立的co mmits)。这就是git的设计目的。 –

回答

23

我有同样的问题,因为它没有被用来在服务器上取出了一些包文件。我不得不打开命令提示符窗口,看到所有的错误运行:

git pull 

我看到这个错误与文件的列表中删除:

Please move or remove them before you can merge. 
Aborting. 

删除他们,我是能够成功地做了拉后。

+1

你可能是对的。我从来没有解决过这个问题。从那以后,我已经学会了如何在命令行中使用git,并始终在那里解决我的错误。 – onefootswill

+0

你是对的,对我来说,我使用从Visual Studio拉并得到一个错误发生。详细信息:无法rmdir ...':Accèsrefusé。然后我制作一个git状态并显示错误状态的文件 – Jerome2606