gpt4 book ai didi

git - 管理 Git 分支和子分支?

转载 作者:太空狗 更新时间:2023-10-29 14:12:41 24 4
gpt4 key购买 nike

我正在尝试弄清楚如何管理 Git 分支,以便我的开发过程有一个正确且可读的流程。

基本上我们有一个master分支,一个project分支,那么我们就可以在这个project分支下开始开发feature。我也希望能够创建分支机构。

假设我会有 master -> project -> feature 1 -> feature 1 sub 1 ...

我在 Hg 中得到的结果如下所示:

http://i.stack.imgur.com/lAz5c.png

我在git下实际得到的是这样的:

http://i.stack.imgur.com/y6mmx.png

基本上,整个开发流程都丢失了,并且在 1 年内将无法知道“接口(interface)重构”是相关的并且是“速度模型复制”的子部分。

此外,我正在避免快进 merge ,因为它只是失去了对所有历史记录的跟踪,但即使在几个月后我也无法判断“更新必要的 setExecutionMode”是在“InterfaceRefactoring”下完成的,而不是“……的重复”

我正在认真考虑回到 Hg 并使用插件在 Hg 和 Git 之间架起一座桥梁,因为 Git 非常不友好,但我也非常想使用公司工具,因为它仍然是一个现代且高效的 SCM(不像 SVN 或 CVS)。

我仍然认为我可以得到我想要的,我只是不明白如何。
我做错了什么?

最佳答案

Git 没有 Mercurial 所谓的“命名分支”。相反,Git 所称的“分支”与 Mercurial 所称的 bookmarks 非常相似。 .有一些区别:

  • 在 Git 中,每个头都必须有一个分支指针,否则它被认为是半不存在的(“分离的头”),并且可能在一段时间后被垃圾收集。这样的头不会出现在存储库历史中,但可以从 reflog 中检索到。 .这与 Mercurial 形成鲜明对比,后者的书签完全是可选的。
  • Git 始终维护“远程分支”,而 Mercurial 仅在本地和远程书签不同时才这样做(您会收到“不同书签”警告和名称类似于 foo@default 已添加到存储库)。这意味着 Git 的本地分支必须在 pull 后手动快进,而 Mercurial 会在 pull 时自动快进本地书签。
  • 在 Mercurial 中,@ 是一个特殊的书签,可能存在也可能不存在。如果是,克隆会默认检查它。它可以用作指向主干(默认分支)的指针,尽管这不是它的唯一用途。在 Git 中,@ 是当前提交的简写,“主”分支被称为 master

如果你需要类似 Mercurial 的分支,你应该使用 Mercurial 而不是 Git。

关于git - 管理 Git 分支和子分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32334624/

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