【问题标题】:difference between origin/branch_name and branch_name?origin/branch_name 和 branch_name 之间的区别?
【发布时间】:2014-11-25 08:05:34
【问题描述】:

用于推送到 bitbucket。

如果我这样做:git push origin origin/branch_name 我的提交不会被推送。

Total 0 (delta 0), reused 0 (delta 0)

如果我这样做 git push origin branch_name 我的提交被推送:

Counting objects: 160, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (13/13), done.
Writing objects: 100% (20/20), 2.10 KiB | 0 bytes/s, done.
Total 20 (delta 6), reused 0 (delta 0)

那么,branch_name 前面的起源/意思是什么?为什么这很重要?

【问题讨论】:

    标签: git bitbucket


    【解决方案1】:

    您必须记住,有不同类型的分支:

    • (纯)本地分支,即您承诺的分支,
    • 存在于远程存储库中的分支,因为没有更好的术语。您可能以远程名称(例如origin)知道有问题的远程存储库。但是,从该存储库的角度来看,这样的分支是本地。欢迎使用分布式版本控制! :)
    • 远程跟踪 分支。也简称为远程分支,如Pro Git book,但我觉得这句话令人困惑; 远程跟踪分支更准确。它们是特殊的本地分支,其唯一目的是反映您上次与服务器通信时位于远程存储库中的分支的状态。特别是,您不能提交此类分支。

    这里,branch_name 是一个本地 分支,而origin/branch_name 是一个远程跟踪 分支;它反映了位于origin 中的相应分支的状态。

    刚跑完

    git fetch
    

    remote-tracking 分支origin/master 和相应的origin 分支应该完全同步(模并发推送到远程服务器,课程)。

    git push origin origin/branch_name
    

    不推送任何东西:您实际上是在尝试推送已经存在于 origin 中的相应分支的祖先中的东西。

    但是,如果您的 local 分支 branch_name 领先于一个或多个提交,

    然后运行

    git push origin branch_name
    

    将推送包含在 branch_name 中的提交,但不会推送到 origin 中的分支

    【讨论】:

      【解决方案2】:

      使用图形树查看器(如gitk --all)会告诉您origin/mybranchmybranch 可能不同。

      origin 只是克隆remote默认 名称,它(在您的情况下)包含一个分支mybranch(就像您的本地存储库一样)

      因此,当您要求将 origin/mybranch 推送到 origin 时,您正在同步 origin 遥控器与自身,因此它不会做任何事情(幸运的是 遥控器 始终同步与自身)。

      名称origin 是任意的,并且可以在克隆时使用--origin 标志设置。

      【讨论】:

        【解决方案3】:

        origin 是远程存储在 github 上的内容

        无源是本地存储在您计算机上的内容

        当您第一次提交时,您将在本地提交到您的计算机

        当您推送原始分支名称时,您正在推送到 github

        【讨论】:

        • github 是从哪里进入这个游戏的? git 允许许多远程服务器,github 只是其中之一。
        • @umläute 我认为他使用 GitHub 来反映“远程”部分的含义。
        • @ItrysohardbutIcryharder 我知道,但如果人们将githubgit 混为一谈,那我就会哭如此。这个问题也被标记为bitbucket(没有明显的原因,除了OP可能使用bitbucket作为他们的遥控器)
        【解决方案4】:
        • origin/branch_name 是远程机器上的一个分支
        • 只是branch_name是本地机器上的一个分支

        【讨论】:

        • 我不同意。 origin/branch_name 在您的本地计算机上,但在远程计算机上跟踪分支。
        猜你喜欢
        • 2023-02-04
        • 2015-03-24
        • 2023-02-02
        • 1970-01-01
        • 2020-07-30
        • 2023-02-02
        • 1970-01-01
        • 2021-02-05
        • 2016-04-08
        相关资源
        最近更新 更多