git + внутренняя ветвь геррита - PullRequest
1 голос
/ 03 февраля 2020

Я новичок в Gerrit и хочу понять Gerrit с точки зрения Git -internals.

В настройках Gerrit моей компании я могу загрузить текущую ветвь Gerrit со следующей Git команда

git fetch ssh://user@company.com:12345/company/department/project refs/changes/12/123456/3 && git checkout FETCH_HEAD

В конфигурации моей компании это означает загрузку определенной ветки Gerrit проекта Git.

Для ясности, вышеприведенное НЕ является git ответвлением ; Я специально использую фразу Gerrit-branch .

Когда я git clone ssh://user@company.com:12345/company/department/project, а затем git branch --list -a я вижу только

* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/dev
  remotes/origin/master
  remotes/origin/stable

Но в веб-интерфейсе Gerrit я вижу десятки активных ветвей Gerrit.

ВОПРОС

  1. Как Gerrit хранит ветвь Gerrit на сервере Git?
  2. Является ли refs/changes/12/123456 отдельной ветвью, т.е. нет родительского указателя на что-либо в дереве, содержащем "базовый" узел?
  3. Являются ли эти ветви Gerrit невидимыми для git branch --list -a из-за собственной схемы из Q1?
  4. Как я могу получить список refs/changes/12/123456/3 доступных на удаленном сервере?
    Запуск tree .git/refs дает мне только два файла "refs": heads/master и remotes/origin/HEAD
...