gpt4 book ai didi

version-control - 化石,单枝有2片叶子吗?

转载 作者:行者123 更新时间:2023-12-05 01:47:47 26 4
gpt4 key购买 nike

我和我的 friend 需要并行开发一个项目。这个怎么做?

我在每片叶子上创建了两个分支。试图合并叶子但得到编辑文件的冲突错误。合并的方法是什么?

我想知道是否可以在一个分支中有 2 个叶子?如果是这样,那么如何在默认叶子之外创建一个新叶子。

最佳答案

任何时候每个分支都有一片叶子。从每个分支的角度来看,这些代表了存储库的最新状态。正如您的帖子所提到的,分支用于在存储库中提供并行开发。它们也是自动创建的(在这种情况下称为“fork”)以防止在每个提交具有相同的直接祖先时对同一分支进行两次提交......允许这就像在同一分支上有多个叶子一样。

要创建一个新的开发分支,打开一个化石仓库并执行如下命令:

fossil branch new some_feature trunk

完整示例

为了举例,我快速创建了一个新的存储库,并向主干(最初唯一的分支)添加了一个文件,file.txt。我的示例文件的初始内容是:

here
is
a
file

在使用注释“create baseline”提交添加的文件后,我根据当前状态为名为“some_feature”的新功能创建了一个开发分支(也就是 trunk 分支的叶子)...

fossil branch new some_feature trunk

现在有两个分支,trunksome_feature。创建分支不会改变我的工作分支,所以我仍然在 trunk 中。然后我将基线文件编辑为:

here
is
a
file
folder

...在末尾添加“文件夹”。然后我将更改提交到 trunk 并附上注释,“modification on first branch...trunk。然后我将开发切换到 some_feature 分支...

fossil co some_feature

从第二个分支开始,我还编辑了基线文件的最后一行:

here
is
a
file
reader

...在末尾添加“读者”。然后,我将更改提交到 some_feature,并附上注释“modification on second branch...some_feature”。

要合并开发,您选择了要将更改合并到的分支。在这种情况下,我会将功能分支更改合并到主干中。为此,您必须首先检查合并的目标分支...在我的例子中,trunk

fossil co trunk

然后,我合并了来自另一个分支的特定提交的更改。就我而言,我将使用该分支的叶子:

fossil merge some_feature

MERGE file.txt
***** 1 merge conflicts in file.txt
WARNING: 1 merge conflicts
"fossil undo" is available to undo changes to the working checkout.

现在我的工作目录中有四个文件,而不是一个。没有新的提交/ checkin 实际上返回到适当的存储库。这四个文件是:file.txt、file.txt-baseline、file.txt-merge 和 file.txt-original。 “file.txt-baseline”是合并分支的最近共同祖先中存在的文件。 “file.txt-original”是目标分支中存在的文件,在我的例子中,trunk,就在合并之前。 “file.txt-merge”是您要合并的分支中存在的文件,在我的例子中,some_feature。最后,“file.txt”包含基线文件的内容,其中包含与注释的原始文件和合并文件的冲突更改,因此您可以决定如何处理不同的内容。

在我的例子中,生成的冲突文件“file.txt”如下所示:

here
is
a
file
<<<<<<< BEGIN MERGE CONFLICT: local copy shown first <<<<<<<<<<<<<<<
folder
======= COMMON ANCESTOR content follows ============================
======= MERGED IN content follows ==================================
reader
>>>>>>> END MERGE CONFLICT >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

在从文件中删除合并冲突注释之前,fossil 不会让您提交(或者至少会发出警告)。否则,您将使用消息进行提交,例如“将 some_feature 合并到主干中”。

作为引用,下面是 fossil 为这个例子提供的事件历史图:

Fossil generated event history for my example project

关于version-control - 化石,单枝有2片叶子吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22138968/

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