gpt4 book ai didi

tortoisegit - 使用 TortoiseGit 正确合并功能分支

转载 作者:行者123 更新时间:2023-12-04 23:39:41 29 4
gpt4 key购买 nike

我正在学习使用 Git,但是,我想保持线性的历史。我刚刚完成我的第一个 功能分支 .

我现在准备将它合并到我的主分支中。

我知道这样做的正确方法是重新设置功能分支或其他内容,然后合并它?无论哪种方式,都有一些合并过程,以便您保留提交历史或其他内容。

我的主分支叫做 大师 .功能分支称为 导入-publictalk-名称 .

发现这个问题:

Merging code branch to master using tortoisegit

所以我想我已经成功地做到了,这可以关闭:

Merge Results

我想我现在已经按照我的喜好成功地做到了:

Merge results

最佳答案

创建新分支时,您基本上可以并行工作。但是,无论何时合并(如 https://stackoverflow.com/a/38203822/3906760 中所述),来自功能分支的所有更改都会集成到当前分支中。在这一点上,您有一个同步点,它以某种方式将您的更改放入当前分支(主)的历史记录中。 - 以防万一一个文件在两个分支上都被编辑,可能会有冲突,需要在额外提交完成合并之前解决。

当您的 master 上没有额外的提交时分支(参见图 1),正常合并将导致一条直线,该直线与主分支上的任何提交都无法区分(主分支标签将仅分配给功能分支提交,参见图 2) .如果你想在日志上看到一条平行线,它通过合并提交被光学合并到主分支(一个提交有两个父级而不是只有一个,参见图 3),你需要启用“没有快进"合并选项。 - 如果在主分支上有并行提交,您将始终获得合并提交(除非您选择“仅快进”)。 - 作为一个侧节点:图 2 和图 3 中的文件具有所有相同的内容,唯一的区别是 git 中的元数据。

此外,有些人不喜欢提交在您的屏幕截图中在视觉上交错。从 git 的角度来看,正常合并非常好。但是,如果您想拥有一连串的提交,则需要将您的功能分支重新设置在您想要将更改合并到的分支之上(那么您就是图 1 的情况)。之后合并 rebase 分支(如快进合并或非快进合并)。

为了使您的历史线性化,“只需”通过“硬重置”将 master 重置为最后一次提交(并行提交,参见图 4)来恢复合并。然后检查您的功能分支并将其重新设置在 master 之上(单击日志对话框中的 master 分支,然后单击“Rebase ... on this ...”。然后您就有了图 1 的情况,您可以再次合并。

图1. reorder-commits上的简单开发在 master 上没有并行提交的分支:

enter image description here

图2.合并reorder-commits进入 master使用默认选项(即快进合并):

enter image description here

图 3. 合并 reorder-commits进入 master使用“非快进”选项,请注意带有“合并分支...”消息和两个父提交的合并提交:

enter image description here

图 4. 通过(硬)重置 master 来“恢复”您的分支,使历史再次线性化分支到原来的位置。

enter image description here

关于tortoisegit - 使用 TortoiseGit 正确合并功能分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41794529/

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