8

我工作的公司给了我将他们的 java 项目从 CVS 转移到 Git 的项目。出于几个原因,他们不想使用 Eclipse 以外的其他工具。所以我们被EGit困住了。

我进行了很多搜索以找到适合我们项目的工作流程。这个似乎很相关并被很多人使用:http: //nvie.com/posts/a-successful-git-branching-model/

问题是,当我们尝试使用提交、分支和合并来查看它如何与 EGit 一起工作时,发生了很多快进合并。快进合并的问题在于它会让你失去分支的起点。

我们工作的客户希望能够选择哪些功能将在下一个版本中出现,哪些不会。这是我们想要从 CVS 迁移到 Git 的主要原因之一,因为在 CVS 中似乎没有简单的方法来查找哪些文件因功能 #1 而被修改,哪些文件因功能 #2 而被修改。在 git 中,我们可以为功能 #1 和 #2 创建分支,并查找针对这些功能修改了哪些文件。但是,由于快进,就像回到 CVS,我们无法知道哪个是功能#1,哪个是功能#2。

那么有什么办法可以防止快进合并?我们尝试将这些配置放在 Eclipse 中:

[core]
mergeoptions = --no-ff

[merge]
ff = false

但它并没有阻止 EGit 进行快进合并。如果此功能未使用 JGit/EGit 实现,是否有任何其他方法可以使用 Egit 来遵循客户想要的工作流(选择要发布的功能的能力)。使用命令行可能会解决问题,但如果可以将其保留在 Eclipse 中,那就太好了。

谢谢

4

3 回答 3

7

EGit 错误 336933是关于支持这些选项的,它已在 EGit 2.3 中修复,请参阅发行说明

如果您还没有使用 2.3,(丑陋的)解决方法可能如下所示:

  • 在合并之前,使用历史视图检查它是否会导致快进合并
  • 如果可以,请在不相关文件中的 master(或您要合并的分支)中进行提交
  • 然后进行合并
于 2012-07-24T10:20:46.040 回答
3

请注意,随着Egit 2.3 的发布,Egit 现在支持该选项:

支持git merge --no-ff作为 EGit 首选项。

这就完成了错误 335091

于 2013-02-22T12:54:49.810 回答
1

看起来这是不可能的,因为 JGit 不支持某些合并选项,包括 --no-ff。

看到这个帖子,有一个关于这个的错误报告。

于 2012-07-24T10:13:23.610 回答