How to merge files and commit them using egit and Eclipse?
使用Eclipse egit将更改提交到主分支的建议步骤是什么?
我使用Eclipse和svn已有很长时间了,在那里一切正常。每当我要进行更改时,流程如下:
-
与工作空间同步
-
寻找冲突
-
发现冲突时,请手动合并,然后将文件标记为已合并
-
更新
-
犯罪
在极少数情况下,我尝试不提交而提交一组文件时,会被警告,并且可以很好地纠正更改。
即使我更新有冲突的文件,也可以从中恢复,尽管我发现先与工作空间同步以识别和合并有冲突的文件比尝试在失败的更新后进行合并要好得多。因为冲突。
使用egit,我尝试的任何流程都无法正常工作。首先,如果我错误地从服务器进行了拉取并且存在冲突,那么我会被告知存在冲突,但是对此却感到非常困惑:我很难从服务器上获取最新信息,发现无法提交我的文件不管我做多少同步。甚至用最新的文件替换我的文件,然后再进行一次拉动再提交,似乎都不再起作用。
即使我遵循与svn相同的方法(先进行同步并手动合并有冲突的文件),然后再进行拉动,其后仍然会遇到上面提到的相同失败,就好像我将文件标记为合并wasn占不到。
所以...张空白的纸,当我进行一些更改时,建议将它们与服务器上的最新代码合并在一起(可能包括与我的更改集冲突的文件更改),这些建议是什么? ,要提交我的更改?如果有一个讨论这种问题的人,那么指向良好的egit教程的指针就可以了。
我不确定我是否正确理解了您的问题。但我现在正尝试给您一些提示。最近,我们将公司的存储库从CVS转换为git,这非常具有挑战性,因为我们有很多问题都集中在您要解决的同一问题上。
首先,我不得不说,来自SVN或CVS的软件将无法像您多年一样完成您的工作流程。
尤其是处理少量文件并仅通过sync更新这些文件将不适用于git。这是我与git同步时(从服务器获取最新信息)所采取的步骤。
我Promise。尽早提交可以减轻很多痛苦!与远程存储库同步时,没有挂起的更改,例如,这可能会导致很多麻烦。
我拿使用egit,您可以将操作放入工具栏,甚至为其创建快捷方式,这使获取操作非常舒适。
提取的结果将显示在对话框中。我研究了这些变化,因为这是我认为最好的方法。您可以阅读所有提交消息,甚至双击它们以在后台打开一个提交并研究差异。是的,此对话框不是模式对话框。因此您可以在第二个监视器上移动它。
我做了一个变基。这类似于合并,但不会保留您从其开始临时开发的那一刻起的信息。这是我公司做出的一项设计决策-与合并相比,更倾向于重新设置基础。
如果您有冲突,可以使用合并工具解决。这与您使用CVS进行的同步非常相似。记住要做一个Add to index,因为它是新的mark as merged。之后,如果您进行了重新设置基准,则应该执行Rebase > Continue。
我推。如果在此期间没有人推动,就是这样。
那是我的工作流程。如果这是正确的方向,那么我可以添加更多详细信息,说明为什么要执行多个步骤,以及我认为最好的方法是如何使用egit进行操作。
- 您能否建议如何克服结帐冲突stackoverflow.com/questions/18050220/…。对于现在所学的未来,我应该在获取之前就做出Promise。
-
是的,我来看一下。可能要花几分钟时间;-)但这是同步之前提交是个好主意的原因之一。如果您不想以这种方式发布,git会为您提供很多处理此后提交的可能性。
-
一开始令人困惑的是很多可能性。一个人需要知道路径。
-
是的。在我的公司中,我们看到了一些经常出现的问题,并描述了一种最佳方法,该方法可以使用egit解决它们。我看一下其中的一些在stackoverflow上是否尚不可用,并可能在这里对所有它们进行描述。
-
只需在链接(并复制内容)上发布它们(例如在GitHub上的示例)即可。
-
是的,但是可能要花一些时间,因为我必须翻译它们,目前我的时间很少。
-
德国人会的。这将是一个很好的开始。我们还开始在公司Wiki中组织知识。
-
我将不得不尝试使用您建议的流程,但这确实是我所希望的答案。让问题再待几天,以防出现更多建议。一个问题:我假设您提交时没有签出"向上游推送更改",对吗?另外,您能否再说几句有关rebase vs. merge的内容?是每个人都需要遵循的约定吗?还是每个开发人员都可以选择他们想采用的约定?最后:您是否以这种方式使用分支?
-
换句话说,您能否说"将更改推送到上游"?因为我不明白这一点。变基还是合并不是一般惯例。但是我们有一个很大的存储库(4gb)和很多更改,发现在某些时候egit显示合并路径不太舒服。对于我们来说,从哪一点开始发展就没有兴趣了。因此,我们通常只需要一系列提交。这就是为什么我们更喜欢重新合并而不是合并。我个人使用很多本地分支机构,而我们有很多共享分支机构。使用本地分支机构时,工作流确实还有一些其他步骤。
-
@BertramNudelbach当我选择" commit "时,Eclipse将显示要提交的文件,并且底部的复选框为我提供了"将更改推送到上游"的选项,即在提交之后进行推送。如果未选中该选项,那么我只会提交到本地存储库,我相信这是您在第1步中所做的事情。就像Paul所说的那样,我对您可以在流程中发布的任何详细信息也非常感兴趣,包括您的分支机构的工作流程。我很少看到关于egit和Eclipse的讨论,这很奇怪。
-
好的,通常我选择不提交并推送。但这没关系。因为当egit尝试提交然后推送时。如果推送失败,您仍然可以提交。所以,这就是我的工作方式:在我Promise的每一天,导致其他人工作,并且可能会发生不快的情况。当我晚上工作时,别人推挤的可能性很小,所以这就是我使用commit的时候