gpt4 book ai didi

svn - Mercurial 或 git 比 svn 对于分支/merge 有什么好处?

转载 作者:太空狗 更新时间:2023-10-29 13:30:23 24 4
gpt4 key购买 nike

例如,我听说用 git 或 mercurial merge 分支比用 svn 更容易。

阅读上一篇关于软件博客条目的 Joel,我不明白为什么。您能否提供一个具体示例,其中与 svn 相比,使用 git/mercurial merge 导致更少的 merge 冲突?

最佳答案

一个简单的例子是 git 可以自动将 merge 转换为“快进”。例如,假设我有一个如下所示的分支:

大师:

A ---> B ---> C

然后我创建了一个基于 Master 的功能分支,其中包含新的提交 D 和 E。

特点:

A --- > B ---> C
\
D ---> E

在 svn 中,当您将功能分支 merge 回 master 时,您必须创建一个全新的提交,将 D 和 E 的更改应用到 Master 上。所以,它看起来像:

Master:
A ---> B ---> C -----------------> F
Feature: \ /
---> D ---> E -->

在 git 中,我们可以选择如何将分支功能 merge 到 master 中。如果我们做一个

git rebase feature

git 会自动识别这是一个简单的 merge 并执行快进 merge ,这会将新的提交添加到 master 分支。 rebase 的结果是:

大师:

A ---> B ---> C ---> D ---> E

Master 和 Feature 的头都指向提交 E(换句话说,它们看起来完全一样)。快进 merge 类似于在 svn 中进行更新时发生的情况。

此外,您可以选择强制 git 创建 merge 提交。相反,如果我们这样做:

git merge feature

git 将创建一个 merge 提交。 merge 的结果是:

Master:
A ---> B ---> C -----------------> F
Feature: \ /
---> D ---> E -->

提交 F 是 D 和 E 的组合。

关于svn - Mercurial 或 git 比 svn 对于分支/merge 有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2518779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com