Git “的目的是什么?”;吉特推送-u“;指挥部?

Git “的目的是什么?”;吉特推送-u“;指挥部?,git,Git,AFAIK,git在输入以下命令时执行以下操作: “git推送-u源主机”: Git检查主分支是否位于远程回购中。如果没有,它将创建它 Git确定本地分支和远程分支之间的差异。Git更新远程分支中的“diff” Git还将在本地计算机中创建一个名为“origin/master”的新远程跟踪分支,以跟踪远程分支 Git将名为“master”的非跟踪分支设置为跟踪分支(以便跟踪“origin/master”) 这将导致存在3个分支: 在我的本地机器中跟踪名为“master”的分支(跟踪原点/mas

AFAIK,git在输入以下命令时执行以下操作:

“git推送-u源主机”:

  • Git检查主分支是否位于远程回购中。如果没有,它将创建它
  • Git确定本地分支和远程分支之间的差异。Git更新远程分支中的“diff”
  • Git还将在本地计算机中创建一个名为“origin/master”的新远程跟踪分支,以跟踪远程分支
  • Git将名为“master”的非跟踪分支设置为跟踪分支(以便跟踪“origin/master”)
  • 这将导致存在3个分支:

    • 在我的本地机器中跟踪名为“master”的分支(跟踪原点/master)
    • 本地计算机中名为“源/主”的远程跟踪分支
    • 远程存储库中名为“master”的远程分支
    这是正确的吗

    重新编辑:假设本地计算机中存在主分支


    提前感谢。

    推送前必须存在
    主分支。
    这意味着在新创建的repo中必须至少完成一次提交(正如我在“”中解释的)

    然后创建
    原点/master
    和远程上的master分支

    对于您的第4点(因为master已经存在),所创建的是本地分支
    master
    .gitconfig
    中的
    -u
    -上游到
    选项)
    origin/master
    之间的关联:

    [branch "master"]
           remote = origin
           merge = refs/heads/master
    
    发件人:

    因此,如果我可以让
    master
    分支直接跟踪远程分支,我会从中获得什么好处:

    master
    ”指向“
    origin/master
    ”指向“remote
    master

    有了这个额外的中间人分支机构,我有什么好处

    您确实可以使用git push https://www.github.com//master:master.


    在本地分支
    master
    和远程跟踪分支(
    origin/master
    )之间正式建立跟踪关系的好处是记录推送到哪里(
    git push
    )或从哪里合并(
    git pull
    )。

    Hi.第4点是关于“git push-u”的吗“命令也正确吗?Git真的会将不跟踪分支变成跟踪“源/主”的跟踪分支吗?所以说我们有两种类型的跟踪分支是真的:一种可以跟踪本地分支(主->源/主),另一种可以跟踪远程分支(源/主->远程主)?@Qwerty从某种意义上说是的,但是您不会创建特殊类型的本地
    分支<代码>主控
    保留
    主控
    。它只有附加到它的附加属性(
    remote
    merge
    ),这使得它有一个上游分支<代码>源代码/主代码
    是远程跟踪分支。您可以删除
    master
    ,并且在您的repo中仍然保留远程跟踪分支
    origin/master
    。因此使用跟踪分支(使用-u选项)的唯一原因是让Git记住下次推送代码时应该将代码推送到哪个远程分支。对吗?@Qwerty是的,默认情况下,本地分支不知道推送到哪里。而Git回购也不知道从何处进行合并(在Git拉取过程中)