0

我已经使用 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)
4

1 回答 1

2

您必须首先获取或拉取分支到您的本地仓库。

git fetch origin
# OR
git pull origin

之后就可以结账了foo

git checkout foo

而且,您可以使用上面编写的命令来跟踪 origin/foo 与另一个本地分支名称(在您的调用中,只需结帐,因为您使用相同的名称)。

Git 远程只能在您可以拉/推更改的地方。但实际上,git 所做的一切都在您的本地驱动器上,因此您无法与远程分支进行交互,除非您先将它们获取到您的语言环境。origin/foo只是sha-1您在本地持有的提交 ID 上的标签。使用 时origin/foo,您引用的是本地标签,而不是远程状态(在引用远程分支时没有建立 ssh 连接)。

于 2012-10-08T19:19:57.053 回答