我想知道使用gitflow并将master合并到开发中是否会引起冲突。我打算使这个“ git merge master”成为开发命令的一个自动的,非交互的过程,因此,如果发生冲突,它将失败,因为它需要人工干预。
我正在使用GitFlow,直接应用到master的更改是版本颠簸,它颠簸版本,提交然后将版本更改为快照版本。例如,master的版本可能为1.0.1-SNAPSHOT。如果我们将其版本更改,版本将更改为1.0.2,然后进行git commit。然后,将版本更改为1.0.2-SNAPSHOT,然后提交。因此,每个版本颠簸都会导致两次提交(请参见mvn版本更新程序)。
我定期要通过调用git merge将master中的最新版本合并到开发中。这将进行版本更改,但也将进行在master中而不在开发中发现的任何其他更改。我相信这不会引起任何冲突,因为master拥有的一切,develop也应该拥有,因为我们将development合并为master。
我已经测试了文件重命名,将要删除的编辑文件以及对该文件的大量编辑,但是在这种模型下,从master合并到开发后,我不会出现冲突。
有什么办法在这里引起冲突吗?尝试自动将母版合并到开发过程中会有任何问题吗?谢谢。
答案 0 :(得分:0)
TL; DR是!
在这里我需要讨论多个问题/问题:
(1)在git-flow
created and documented by nvie中,没有从master
到develop
的合并,而是从({仅使用版本1.0.2
在此示例中)release/1.0.2
分为master
和develop
。
(2)此release/1.0.2
分支旨在作为您调整版本的位置。由于您在每次发行后都将develop
合并到release/1.0.2
中,因此它将自动出现在develop
上。然后,无需定期从master
更新。
(3)master
分支仅包含合并提交,没有其他内容。这只是所有版本的有序列表。
(4)在develop
上工作时,release/1.0.2
一直在工作(假设并非所有人都在整个项目上工作),因此在两种情况下都可能遇到合并冲突。如果在同一行中进行更改,则可能会(但不一定需要)发生合并冲突。