我使用git克隆了一个repo。另一个用户创建了一个新的分支,称之为foo(有两个分支master和foo)。我创建了另一个分支foo来跟踪远程foo。所以我运行了这个命令:git branch --set-upstream foo origin / foo。但是我有一条错误消息告诉我:fatal: Not a valid object name: 'origin/foo'
任何人都可以提供帮助吗?当我运行git remote origin show时,我收到了消息:
* remote origin
Fetch URL: ssh://***
Push URL: ssh://***
HEAD branch: foo
Remote branches:
master tracked
foo new (next fetch will store in remotes/origin)
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (local out of date)
答案 0 :(得分:2)
您必须先将分支机构取出或拉到本地仓库。
git fetch origin
# OR
git pull origin
之后,您可以结帐foo
git checkout foo
并且,您可以使用您编写的上述命令来跟踪原始/ foo与另一个本地分支名称(放入您的通话中,只需在结账时使用相同的名称)。
Git遥控器只能在某个地方拉/推变化。但实际上,git所做的就是在本地驱动器上,所以除非先将它们提取到您的语言环境,否则无法与远程分支进行交互。 origin/foo
只是您在本地持有的sha-1
提交ID的标签。使用origin/foo
时,引用本地标签,而不是远程状态(引用远程分支时没有进行ssh连接)。