为远程指定 Git 分支

25

我试图从GitHub更新我的Webbynode,但我收到了以下消息:

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

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

[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


你第一次运行了什么命令? - Jacobo de Vera
我在specify-default-branch-for-a-non-default-remote-for-pull-rebase上有一个类似的问题,但我们希望在不更改默认远程或显式列出分支的情况下完成此操作。 - studgeek
2个回答

25

你当前所使用的本地分支是什么?

git status 显示了什么?

你很可能正在与本地主分支不同的某个其他分支上工作。如果你想要从 GitHub 拉取新的提交并将它们合并到本地主分支中,你需要执行以下操作:

git checkout master
git pull

如果您想在当前工作的分支中包含这些提交,需要执行以下操作:

git pull origin master

你的PS尝试已经接近了,但是最后一个参数应该是分支名称,而不是仓库的URL。


你也可以从GitHub获取新的提交记录,而不将其合并到任何本地分支中,使用以下命令:

git fetch origin

然后使用git diffgit log等方法查看这些更改,稍后将其合并到当前检出的分支中:

git merge origin/master

1
感谢您的回复。git checkout master git pull origin master解决了我的问题。 - Sig
分支名称对我来说是不同的,但是在我的派生库中使用git merge <remote_name>/<branch_name> 工作了。在原始问题的背景下,<remote_name> 是一个指向旧“工作库”的远程库,该库直接位于本地硬盘上,其中包含希望重播的更改。 - Chris Chiasson

6

你有一个名为origin的分支真是奇怪。在git clone期间,origin用于命名一个远程仓库;如果你需要区分origin作为分支和origin作为远程仓库,那么你肯定会遇到麻烦。你是否手动向.git/config添加了该分支?你运行了哪些命令?我怀疑你把它搞糟了。


点赞了,但这应该是一条评论,而不是对问题的回答。 - Dannid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接