我工作的公司给了我将他们的 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 中,那就太好了。
谢谢