Как настроить конкретную спецификацию push refspec восходящего потока для Git при использовании с Gerrit?

Я настраиваю Git с помощью Gerrit Code Review и ищу способ сделать необходимые команды Git относительно простыми для пользователей, которые могут быть новичками в Git .

В настоящее время у меня есть команды для запуска новой функциональной ветки по существу (при условии, что Геррит origin ):

git checkout baseline
git pull
git checkout -b work1234
git push -u origin work1234

Это запускает новый рабочий пакет work1234 , ответвленный от некоторого baseline , а последний толчок создает ветвь в Gerrit и устанавливает восходящий поток. Итак, .git / config выглядит примерно так:

[branch "work1234"]
        remote = origin
        merge = refs/heads/work1234

Теперь Геррит хочет, чтобы новые коммиты для проверки помещались в специальный refspec, например refs / for / work1234 . Я могу сделать это вручную с помощью:

git push origin work1234:refs/for/work1234

Я бы хотел найти способ настроить .git / config , чтобы простой git push выталкивал текущую ветку к refspec на пульте дистанционного управления, который требует Gerrit. Я просмотрел следующие области git config :

  • ветка. . * - похоже, нет какой-либо конкретной опции для установки push refspec
  • push.default - Я как бы хочу вверх по течению здесь
  • remote. .push - Я пробовал refs / Head / *: refs / for / * здесь но git push всегда хочет отправить все локальные ветки в этом случае, а мне просто нужна текущая ветка

Если я не могу заставить Git делать это само по себе, я напишу небольшой сценарий оболочки, который полностью определяет refspecs. Однако было бы лучше, если бы Git мог напрямую перемещаться в нужное место.

17
задан Greg Hewgill 18 August 2011 в 00:41
поделиться