【问题标题】:Should I checkout to div before creating a new branch?我应该在创建新分支之前结帐到 div 吗?
【发布时间】:2021-10-23 19:19:15
【问题描述】:

据我所知,当我们创建一个新的分支时,它是基于我们创建之前的分支。假设我是branch-a,我想创建branch-b。那么,如果我创建branch-b,然后在稍后删除branch-abranch-b 会是什么?我认为它将失去基础分支(branch-a)。这是真的吗?

branch-adevelopment 分支创建branch-b 有什么区别?

【问题讨论】:

    标签: git git-branch


    【解决方案1】:

    ...如果我创建branch-b,然后稍后删除branch-abranch-b 会怎样?我认为它将失去基本分支(branch-a)。这是真的吗?

    没有。在 Git 中,分支之间没有关系。分支是一个名称和一个指向提交的指针,仅此而已。 Git 不存储分支的创建/修改时间戳、父分支等等。

    因此,当基于另一个分支创建分支时,Git 会将“父”分支指向的提交复制到新分支。之后,与“base”分支的任何关系都将丢失。

    如果您创建 branch-b 然后删除 branch-a 分支 branch-b 不会发生任何事情。

    branch-adevelopment 分支创建branch-b 有什么区别?

    唯一的区别是将提交 ID 复制到分支 branch-b — 来自分支 branch-adevelopment 的头部提交。

    PS。顺便说一句,您知道您可以基于任何其他分支、标签或提交 ID 创建分支吗?您没有义务签出分支以从中创建新分支。见git help branch<start-point> 可以是任何指向提交的东西。默认只是HEAD,即当前提交。例子:

    git checkout development
    git branch branch-b branch-a # create from the head commit of branch-a
    git checkout -b branch-b branch-a # create from branch-a and checkout the new branch
    

    【讨论】:

      【解决方案2】:

      我已经做过很多次了,比如从开发分支创建了一个新分支,当遇到一些问题时,我删除了开发分支。它对远程没有影响,因为您仅从本地删除分支引用。 因此,即使您在此基础上创建了其他分支,您也可以删除该分支。

      【讨论】:

        猜你喜欢
        • 2013-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多