Java 签出与文件冲突。我该如何进行?
我刚刚从保存团队项目的远程存储库中提取了一些更改 这是我拉车时收到的信息: 显然,我的一个合伙人和我换了同一个文件 我如何从这里开始?信息非常模糊。有错误吗?我必须撤销我所做的吗?他一定要吗 您必须将合作伙伴的更改合并到代码中,并提交手动合并的文件 或者,如果您的更改不太复杂,您可以恢复(丢弃)对该文件的更改,更新代码以获取合作伙伴的更改,然后重做您的工作Java 签出与文件冲突。我该如何进行?,java,eclipse,egit,jgit,vcs-checkout,Java,Eclipse,Egit,Jgit,Vcs Checkout,我刚刚从保存团队项目的远程存储库中提取了一些更改 这是我拉车时收到的信息: 显然,我的一个合伙人和我换了同一个文件 我如何从这里开始?信息非常模糊。有错误吗?我必须撤销我所做的吗?他一定要吗 您必须将合作伙伴的更改合并到代码中,并提交手动合并的文件 或者,如果您的更改不太复杂,您可以恢复(丢弃)对该文件的更改,更新代码以获取合作伙伴的更改,然后重做您的工作 请参见工作副本中的文件中是否有未提交的更改?或者你的工作副本是干净的?EGit文档将指导您完成后一个场景 根据我的经验,@lmray发布的
请参见工作副本中的文件中是否有未提交的更改?或者你的工作副本是干净的?EGit文档将指导您完成后一个场景 根据我的经验,@lmray发布的错误对话框是EGit在本地工作副本有未提交的更改时显示的对话框。EGit希望合并来自远程的信息,但我被告知它不会修改脏的工作副本。若要继续,您必须首先在本地提交更改,提供一个回退点,然后再次请求合并。然后合并应该生成一个合并文件,希望没有任何冲突 感谢@B.Dalton试图纠正我的错误-我的脏工作副本文件有未提交的更改,本地git向导解释了这一点
题外话:如果你(像我一样)习惯于使用SVN,这是一种心理调整,它会很高兴地将远程更改拉到一个脏的本地工作文件中。并不是说这更好,只是git的工作方式有所不同。我仍在努力将我受过SVN训练的直觉转化为对Git的合适期望。我今天遇到了这个问题,下面的解决方案对我有效
当您的更改无法与即将进行的更改合并时,会发生冲突,因为这些更改基本上在同一行上。您有两种选择,一种是还原更改,另一种是手动合并更改并稍后提交:请看“解决合并冲突”一节手动合并听起来不错,但EGit文档指出,冲突的文件应该有“>>>”、“===”和“这令人费解。可能冲突是由于不同的行尾标记或字符编码造成的?我在这里疯狂地猜测。我所能建议的是,您获得两份副本(您的和存储库中的版本)并逐行查看它们之间的差异。您通过有效地放弃更改并接受远程更改来解决冲突。