悬挂分支?

时间:2012-06-03 15:10:17

标签: git git-branch remote-branch

这可能是一个已经被问到的问题,但我只是不知道什么是正确的名称来称呼问题 - 所以请指导我或回答(是的,我看过this问题但不能得到的答案太多了。)

我正在尝试git pull但收到以下消息:

You asked me to pull without telling me which branch you
want to merge with, and 'branch.2012_05_09_my_branch.merge' in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details.

If you often merge with the same branch, you may want to
use something like the following in your configuration file:
    [branch "2012_05_09_my_branch"]
    remote = <nickname>
    merge = <remote-ref>

    [remote "<nickname>"]
    url = <url>
    fetch = <refspec>

See git-config(1) for details.

看起来我的工作目录有点“悬挂”而没有附加到任何分支,我是对的吗?如果是这样 - 请告知如何将其连接回正确的分支(例如2012_05_09_my_branch)。可能我甚至错了(作为GIT的新手),在这种情况下,请解释发生了什么以及我该怎么办。

精炼问题:如果没有收到上述消息,我需要怎样才能成功运行git pushgit pull

更新:当我运行git branch时,我得到了:

* 2012_05_09_my_branch
  master

哪个有点可能意味着我在我的本地2012_05_09_my_branch分支上,该分支未连接到任何远程分支?

更新N2: Why do I need to do `--set-upstream` all the time? - 非常值得阅读作为补充材料(仅限现在发现)。

3 个答案:

答案 0 :(得分:2)

您的工作目录未附加到分支,但您没有设置本地分支的远程对等分支。您可以将它们“连接”起来:

git branch --set-upstream 2012_05_09_my_branch remotes/<your remote>/2012_05_09_my_branch

其中&lt;你的遥控器&gt;是.git / config中定义的服务器服务器,通常(当使用一个服务器时)是origin

编辑 更安全的方法是使用remotes/<remote>/<branch>代替<remote>/<branch>

答案 1 :(得分:0)

git status

将帮助您了解您所在的分支(如果有)。命令

git branch

将提供有关您拥有的本地分支的列表(git branch -a也列出了远程分支)。当然你可以使用

git checkout <branchname>

将您的工作副本转换为所选分支。

答案 2 :(得分:0)

创建本地分支时,如果要将其放在远程存储库中,则需要运行以下命令:

$ git push origin 2012_05_09_my_branch