我所在的公司让我将他们的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中进行以下配置:
但这并没有阻止EGit进行快进合并。如果JGit/EGit没有实现此功能,是否有其他方法可以使用Egit进行工作流程,以按照客户要求选择发布功能(即能够选择发布功能的能力)。使用命令行可能会解决问题,但如果可以在Eclipse中保留它,那就更好了。
谢谢。
我花了很多时间寻找适合我们项目的工作流程。这个看起来相当相关并被许多人使用: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中保留它,那就更好了。
谢谢。