当get没有针对远程分支的跟踪信息时,这意味着什么?

时间:2017-12-16 03:46:10

标签: git github

我创建新GitHub仓库(只有master分支)的过程如下:

从终端:

git init
git add .
git commit -m "Initial commit"

然后我进入GitHub并创建我的新repo,为它创建一个Git URL,比如Source.single等。然后我回到命令行:

git remote add origin https://github.com/myuser/myRepo.git
git push -u origin master

此时,我通常喜欢从master创建一个develop分支,然后使用该develop分支从中逐渐删除特征分支(从而保持master“干净“所以只有当我发布产品时它才会改变:”

git checkout -b develop
git push origin develop

此时我可以访问GitHub并看到我的远程仓库现在 一个master以及develop分支。

git pull
git branch --set-upstream-to=origin/develop develop

现在,如果我尝试对develop进行任何更改然后推送它们,我会收到以下错误:

There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=origin/develop develop

我想知道我当前的分支没有任何“跟踪信息”意味着什么?也就是说,如果我在本地创建分支并推送它,那为什么我有向它添加跟踪信息,“添加跟踪信息”甚至是什么意思?!

1 个答案:

答案 0 :(得分:1)

使用

将新创建的开发分支推送到GitHub时
git push origin develop

它将提交从本地分支复制到原始远程,创建远程开发分支。但是,git不会自动保存本地开发分支应跟踪(或推送)远程开发分支的信息。这可以通过两种方式完成:

1)首次推送新创建的分支时:

git push --set-upstream origin develop

2)在你推动了开发分支之后,按照git的建议使用 - set-upstream-to 选项:

git branch --set-upstream-to=origin/develop develop

执行其中任何一项操作后,该消息将消失,当您在开发中 git push 时,git现在将默认使用远程分支开发(或 track )分支。

更多信息:

编辑: git push --set-upstream git push -u 相同,这是你用来推动主分支。