这可能是一个已经被问到的问题,但我只是不知道什么是正确的名称来称呼问题 - 所以请指导我或回答(是的,我看过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 push
和git 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? - 非常值得阅读作为补充材料(仅限现在发现)。
答案 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