代码之家  ›  专栏  ›  技术社区  ›  Vikas

在github中删除本地分支

  •  0
  • Vikas  · 技术社区  · 6 年前

    mass-communication-rm 我已经将代码推送到那个分支,但是由于一些问题,我从本地删除了那个分支,现在我再次创建了同名的分支,所以如果我将代码推送到那个分支,那么会发生什么,它会创建一个单独的分支,或者代码会被推送到同一个分支。

    4 回复  |  直到 6 年前
        1
  •  1
  •   joker    6 年前

    您不必创建同名的新分支。 去分行结账:

    git checkout mass-communication-rm
    

    mass-communication-rm 如果它只作为远程分支存在。本地分支是自动创建的,它将跟踪相应的远程分支。

    我知道这并没有回答你原来的问题,但我认为这回答了根本原因推动你写这篇文章。

        2
  •  0
  •   Federico Grandi    6 年前

    正如你所说,你从本地而不是远程删除了那个分支。现在重写它并尝试推送,它将合并到同一个远程分支。

        3
  •  0
  •   Hassan-Zahid    6 年前

    Github将尝试将更改推送到同一分支。会不会,要看情况。如果新的本地分支与在线分支的代码完全相同,那么Githhub将允许您推送新的更改。否则,它将显示一个错误

    更新被拒绝,因为远程包含您没有的工作

    解决方案:1

    git branch -D mass-communication-rm
    

    注: 大众传播室

    现在使用

    git fetch origin mass-communication-rm
    

    git checkout mass-communication-rm
    

    解决方案:2

    另一个解决办法是把这个问题拉到网上 分支机构。它会将在线分支合并到本地分支,然后尝试推送。会有用的。

        4
  •  0
  •   torek    6 年前

    对Git来说最重要的是 提交 .

    • 提交有散列ID,比如 b7bd9486b055c3f967a870311e704e3bb0654e4f .
    • 分支 喜欢 master 简单存储 提交哈希ID。

    这个 真实姓名 任何提交的值都是它的原始哈希ID b7b<blah> ,和 承诺 (对于相同的<blah>),我们有相同的 . 什么都不重要 分支机构名称 比赛。

    当您在Git中删除一个分支名称时,几乎只会发生这样的情况:您已经删除了 mass-communication-rm ,你的Git用它来记住一个丑陋的哈希ID。让我们用这些字母 代表哈希ID。因为你运行了一个成功的 git push ,ID为 ,到另一个Git存储库,而另一个Git存储库现在拥有它。只要 他们 还有承诺吗 主控室 ,您可以随时调用Git存储库并将其取回。

    现在,当你把GitHubcommit上的Git给他们的时候 主控室 ,你在叫它 . 你可能告诉我了 他们 叫它 大众传播室 . 记住,他们的Git和你的Git一样:它有 分支名称。就像在你的Git里,每个人 他们的 分支名称会记住一个丑陋的哈希ID。

    你的Git还记得他们的Git存在,并且有一个URL,你的Git存储在 远程名称 origin 他们的 你自己的Git下的分支名称 origin/* 名字,你的Git叫它 . 这意味着 你的 Git有名字, origin/mass-communication-rm ,它会记住提交的哈希ID ... 所以你的Git还有一个 名称 为了这个又大又丑的哈希ID!

    让我们回顾一下:

    • 你的Git通过短名称记住他们Git的URL 起源 (你的Git称之为 遥远的
    • 你把GitHub上的GIt给了他们 告诉他们保持低调 他们的 大众传播室
    • 所以呢 你的 ,它会记住用于提交的大而丑陋的哈希ID 主控室 .

    如果你跑了 git branch -r git branch -a (列出两个本地分支名称) 远程跟踪名称),您将看到您自己的 起源/大众传播室 1

    反过来,这意味着您可以运行:

    $ git checkout mass-communication-rm
    

    重新创建 你自己的地方 大众传播室 起源/大众传播室 . 也就是说,你的Git会 创造 一个新的本地分支名称,然后填充到该名称中,即Git在该名称下记住的丑陋的hash ID 起源/大众传播室 .

    然后可以添加新的提交。向分支添加新提交包括 制作 新的提交(以通常的方式),然后拥有自己的Git集 分支名称来记住Git生成的新的、唯一的、丑陋的hash ID 对于 新的承诺。新提交本身会记住 古老的 主控室 在此搜索 向后的 从新提交。

    有关上述内容的更多信息,包括分支名称在保持提交“活动”方面的另一个角色,请参阅 Think Like (a) Git .


    1 请注意 列出远程分支 印刷品 起源/大众传播室 ,但是 查看所有的分支 remotes/origin/mass-communication-rm . 这个 满的 refs/remotes/origin/mass-communication-rm . 你们分支机构的全称是 refs/heads/mass-communication-rm

    refs/ 以及 heads/ remotes/ 查看所有的分支 不会剥掉 遥控器/ 部分,而