только ветка 'git pull' - PullRequest
       26

только ветка 'git pull'

0 голосов
/ 31 августа 2011

У меня есть хранилище клонов 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 -> release / version-2011.12
  • и так далее ...

есть предложения?

1 Ответ

1 голос
/ 31 августа 2011

git ls-remote показывает вам ссылки в удаленном хранилище, поэтому refs/heads/release/version-2011.11 является только действительным ссылочным номером в этом хранилище, а не вашим локальным клоном. Если пульт дистанционного управления называется origin (как это было бы по умолчанию), то соответствующая ветка удаленного отслеживания будет называться:

refs/remotes/origin/release/version-2011.11

... или вы можете использовать сокращение: origin/release/version-2011.11 (ошибка, которую вы видите, связана с попыткой git интерпретировать последний параметр как путь, так как он не знает ссылки с этим именем.)

Если вы просто хотите использовать git log, вам даже не нужно создавать локальную ветвь, которая отслеживает ветку удаленного отслеживания - вы можете просто сделать:

git log origin/release/version-2011.11

Чтобы обновить эту ветку удаленного отслеживания (если в удаленном хранилище произошли изменения), вы можете просто сделать:

git fetch origin
...