【问题标题】:specifying git branch for remote为远程指定 git 分支
【发布时间】:2011-02-09 10:50:02
【问题描述】:

我正在尝试从 github 更新我的 webbynode,但收到以下消息:

您要求从远程 'git@github.com:sigbackup/gsapp.git' 拉取,但未指定 分店。因为这不是您当前分支的默认配置远程,所以您必须在命令行上指定一个分支。

所以我查看了这个论坛寻求帮助,我发现了一些关于 .git/config 文件的 cmets,但我的看起来已经很好(至少对我来说):

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = git@github.com:sigbackup/gsapp.git
[branch "master"]
        remote = origin
        merge = refs/heads/master
[branch "origin"]
        remote = origin
        merge = refs/heads/master

我错过了什么吗? 有什么想法可以解决吗?

PS 我也试过git pull origin git@github.com:sigbackup/gsapp.git,我得到了

致命:找不到远程参考 git@github.com

【问题讨论】:

标签: git github


【解决方案1】:

您检查过哪个本地分支?

git status 显示了什么?

您可能正在处理本地 master 分支以外的其他分支。如果你想从 github 获取新的提交并将它们合并到本地 master 分支,你必须:

git checkout master
git pull

如果你想在你正在工作的分支中提交这些提交,你需要:

git pull origin master

你在 PS 中的尝试很接近,但最后一个参数应该是分支名称,而不是 repo url。


您也可以只从 github 获取新的提交,而不是将其合并到任何本地分支中,使用:

git fetch origin

然后使用git diffgit log 等查看这些更改,稍后合并到当前签出的分支:

git merge origin/master

【讨论】:

  • 感谢您的回复。 git checkout master git pull origin master 解决了我的问题。
  • 分支名称对我来说是不同的,但我的分叉仓库中的 git merge / 有效。在原始问题的上下文中, 是一个远程,它直接指向本地硬盘驱动器上的旧“工作存储库”,该驱动器具有想要重播的更改。
【解决方案2】:

奇怪的是你有一个名为origin 的分支。 origin 用于命名在git clone 期间自动创建的remote;您将不得不消除 origin-the-branch 和 origin-the-remote 的歧义。您是否手动将分支添加到.git/config?你运行了什么命令?我怀疑你搞砸了。

【讨论】:

  • 赞成,但这应该是正确的评论,而不是问题的答案。
猜你喜欢
  • 2012-10-22
  • 2011-04-05
  • 1970-01-01
  • 2012-03-21
  • 2013-11-21
  • 2014-03-17
  • 2015-10-31
  • 2014-04-27
相关资源
最近更新 更多