0

我有一个 git 克隆存储库。

这个 repo 的目的是git log,只要没有git log over ssh这样的东西。

$ git ls-remote

ac118076af0ca4c164a831b9e31b1a307747ec36        refs/heads/master
db1253eae8241aa0813d5a49880c41cd810216c2        refs/heads/production/version-2011.10
32c2dcad3133c8214c0d0e898e32b7a7a9f068cf        refs/heads/release/version-2011.11

我想为远程机器设置一个只读分支git pull(跟踪分支?!)。

$ git branch -tb version-2011.11 refs/heads/release/version-2011.11

fatal: git checkout: updating paths is incompatible with switching branches.
Did you intend to checkout 'refs/heads/release/version-2011.11' which can not be resolved as commit?

$ git checkout -tb version-2011.11 release/version-2011.11

fatal: git checkout: updating paths is incompatible with switching branches.
Did you intend to checkout 'release/version-2011.11' which can not be resolved as commit?

在未来:

  • release/2011.11 将成为 production/2011.11
  • 主 -> 发布/版本-2011.12
  • 等等...

有什么建议么?

4

1 回答 1

1

git ls-remote向您显示远程存储库中的引用,因此refs/heads/release/version-2011.11只有该存储库中的有效引用,而不是您的本地克隆。如果调用远程origin(默认情况下),则将调用相应的远程跟踪分支:

refs/remotes/origin/release/version-2011.11

...或者您可以使用缩写:(origin/release/version-2011.11 您可以看到的错误来自 git 试图将最后一个参数解释为路径,因为它不知道具有该名称的 ref。)

如果您只想使用git log,那么您甚至不必创建跟踪远程跟踪分支的本地分支 - 您可以这样做:

git log origin/release/version-2011.11

要更新该远程跟踪分支(以防远程存储库发生更改),您可以执行以下操作:

git fetch origin
于 2011-08-31T09:04:10.413 回答