何时应使用Git孤立分支?

38

使用 git checkout --orphan 命令,Git 可以在同一仓库中托管多个有向无环图(DAG)。Git 这个功能的一个经常被引用的用例是将分支分开,例如为文档或 GitHub 的 gh-pages 孤立分支创建静态网站。

除了上述原因,还有其他使用孤立分支的理由吗?

3个回答

14

8

来自Git在线文档的另一个用例:

当您想要发布某个提交树但不想暴露其完整历史记录时,这会非常有用。您可能想要这样做是为了发布项目的开源分支,而该分支的当前树是“干净的”,但其完整历史记录包含专有或受限制的代码。


0

GitHub上的Git项目仓库镜像有一个todo分支,维护者在其中记录了一些笔记和脚本,这些脚本似乎可以帮助他发布项目的状态更新(“What's Cooking”)[1]。

> ls
add-by      CB                    cook                   dodoc.sh            git-topic.perl  KO          people           RB              Release    round    taboo.perl  WCBCC
amlook      Checklist.txt         Count                  Doit                Gitweb          Linus       post-applypatch  README.cooking  RelSave    RP       TODO        whats-cooking.txt
Announce    CheckPush             count-contributors.sh  DoKernelOrg         GRADUATED       MaintNotes  pre-applypatch   Reintegrate     RelSign    SE       UWC         WI
AT          check-topic-merges    cycle-run              Dothem              info            Make        ProjectContact   RelBuild        RelStat    SR       V           worklog
candidates  compare-cooking.perl  docbuild-8.sh          genMaintNotes.perl  jc.png          ML          pushall          RelClean        RelUpload  Summary  WC

最后发送的消息可以在whats-cooking.txt中查看。

因此,这不是“为文档分离出一个分支”(这些内容位于主分支上),而是一个用于管理公告的单独分支。可能还有其他东西。

这是该分支上的第一个提交,当然是根提交(没有父级):

commit 1bd90415deccc4562e0fb4d0f8e58140aa687ac1
Author: Junio C Hamano <junkio@cox.net>
Date:   Fri Aug 26 00:32:15 2005 -0700

    Keep track of to-do document.

    This is written in a form of to-do list for me, so if I say
    "accept patch", it means I do not currently plan to do that
    myself.  People interested in seeing it materialize please take
    a hint.

    Signed-off-by: Junio C Hamano <junkio@cox.net>

† 1:截至提交acb9ef215eb2(What's cooking (2023/03 #01),2023年3月1日)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接