如何使用egit和Eclipse合并文件并提交它们?

5
在使用Eclipse + egit提交更改到主分支时,推荐的步骤是什么?
我已经长期使用Eclipse和svn,并且一切都很顺利。每当我要提交更改时,我的流程如下:
- 与工作区同步 - 查找冲突 - 当发现冲突时,手动合并,然后标记文件为已合并 - 更新 - 提交
在很少的情况下,如果我尝试提交一组文件而没有提交,则会收到警告,并且可以很好地纠正更改。
即使我更新有冲突的文件,从中恢复也不是坏事,但是我发现首先与工作区同步以识别并合并文件中的冲突比尝试在由于冲突而失败的更新后合并要好得多。
但是,使用egit时,我尝试过的任何流程都没有正常工作。首先,如果我错误地从服务器上拉取并出现冲突,则被告知存在冲突,但我对此感到非常困惑:我很难从服务器检索最新版本,并且无论我做多少次同步,都无法提交我的文件。即使将文件替换为头部的最新版本,再进行另一个拉取,然后再提交,也似乎无效了。
即使我按照与svn相同的方法操作(先同步,然后手动合并有冲突的文件,并跟随第二个拉取),我仍然会遇到上述相同的问题,好像我的标记文件已合并没有被考虑进去。
因此...空白的纸张上,当我进行了一些更改,想将它们与服务器上的最新代码合并(其中可能包括与我的一组更改有冲突的文件更改),并且可选地想要提交我的更改时,推荐的指示是什么?如果有讨论此类问题的良好egit教程的指针,则可行。
1个回答

7
我不确定我是否正确理解了你的问题,但我现在正在尝试给你一些提示。我们最近将公司的存储库从CVS转换为git,这是非常具有挑战性的,因为我们有很多关注您所针对的同一问题的问题。
首先,我必须说,如果您来自SVN或CVS,您将无法像以前那样执行工作流程。
特别是使用synchronize仅在小型文件集上进行更新将无法使用git。以下是我在与我们的git同步(获取最新服务器版本)时采取的步骤。
  1. 我进行提交。早期提交是节省大量痛苦的方法!在与远程repo同步时不要有待处理的更改,因为使用egit可能会导致很多痛苦。
  2. 我进行获取。使用egit,您可以将操作放入工具栏,甚至创建一个快捷方式,使获取变得相当舒适。
  3. 获取的结果将显示在对话框中。我研究变化,因为我认为这是使用egit做到这一点的最佳点。您可以阅读所有提交消息,甚至双击它们以打开后台提交并研究差异。是的,这个对话框不是模态的..所以您可以将其移动到第二个监视器上。
  4. 我进行变基。它类似于合并,但不会留下您开始临时开发的信息。这是我公司做出的一种设计决策-优先使用变基而不是合并。
  5. 如果有冲突,您可以使用合并工具来解决它们。这与您在CVS中执行的同步相似。记得进行添加到索引,因为它是新的标记为已合并。之后,如果您进行了变基,应该执行Rebase > Continue
  6. 我进行推送。如果此期间没有其他人进行推送,那就是它。
这是我的工作流程。如果这是正确的方向,我可以添加更多详细信息,说明我为什么要按照我所做的方式执行几个步骤以及如何使用egit最佳方式。

1
好的,我会看一下。可能需要几分钟;-) 但是这个问题正是在同步之前提交的一个好主意。如果您不想以那种方式发布它,git会给您很多处理该提交的可能性。 - Bertram Nudelbach
开始的时候,很多可能性是令人困惑的。一个人需要知道正确的路径。 - Paul Verest
是的。在我的公司,我们发现了一些经常出现的问题,并描述了如何使用egit解决它们的最佳实践。我会看看是否已经有一些类似的问题在stackoverflow上可用,并可能在这里为所有人描述它们。 - Bertram Nudelbach
只需将它们发布(例如作为GitHub上的示例),提供链接(并复制内容)。 - Paul Verest
德语就可以了,这是一个不错的小起点。我们还开始在公司的维基上组织知识。 - Paul Verest
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接