'git pull'分支

时间:2011-08-31 08:59:55

标签: git branch tracking git-checkout

我有一个git克隆的存储库。

这个回购的目的是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?

将来:

  • 发布/ 2011.11将成为生产/ 2011.11
  • master - >释放/版本-2011.12
  • 等......

有什么建议吗?

1 个答案:

答案 0 :(得分: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