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

为什么我要做`--拉的时候总是把上游设置为`?

  •  1
  • nha  · 技术社区  · 6 年前

    虽然有一个简单的设置 git push (见 Why do I need to do `--set-upstream` all the time? ) 我还没有发现git pull也是如此。

    • branch123 projectABC 从github
    • cd projectABC && git checkout -b branch123
    • git pull

    唉,迎接我的是:

    当前分支没有跟踪信息。拜托 指定要与哪个分支合并。有关详细信息,请参见git pull(1) 细节。

    git pull <remote> <branch>
    

    使用:

    git branch --set-upstream-to=origin/<branch> branch123
    

    4 回复  |  直到 6 年前
        1
  •  3
  •   Tobb    6 年前

    -b -用于签出的标志实际上是创建一个新的本地分支,而不是链接到任何远程分支。第一次推送新分支时,可以通过执行以下操作将其链接到新的远程分支 git push -u . 如果您正在签出现有的分支,只需删除 -b类 .

        2
  •  2
  •   rubenvb    6 年前

    origin/branchName (所以 git branch -l 不列出 branchName origin )像这样:

    git checkout branchName
    

    您将创建一个新的本地分支来跟踪 来源/分支名称 自动地。Git还应通知您:

    Branch branchName set up to track remote branch branchName from origin.
    Switched to a new branch 'branchName'
    

    当你使用 -b flag,您需要添加 -t 同时标记以一次性设置跟踪:

    git checkout -b branchName -t origin/branchName
    

    只有当您希望本地分支与上的分支具有不同的名称时,此命令才真正有用 起源 -b类

    或者,您可以使用 -u 前面提到的论点 in @Tobb's answer git checkout 做。

        3
  •  1
  •   Frosted Developer    6 年前

    通常,您会:

    git branch -u %remotename%/%branchname%
    

    将%remotename%替换为您设置的远程名称,该名称通常称为“源”。用远程分支名称替换%branchname%。

        4
  •  0
  •   nha    6 年前

    下面是我想到的:

    • git曲目<=这是有趣的一点

    在my.gitconfig中使用以下别名

      track = "!f(){ branch=$(git name-rev --name-only HEAD); cmd=\"git branch --set-upstream-to ${1:-origin}/${2:-$branch} $branch\"; $cmd; }; f"
    

    学分: https://andre.arko.net/2012/05/29/track-remote-git-branches-with-ease/