Можно ли создавать запросы на слияние в чистом Git из командной строки? - PullRequest
32 голосов
/ 01 сентября 2011

Я использую установку Gitorious за брандмауэром.

Я могу зайти в веб-приложение и создать запрос на извлечение из клона и назначить мастер-репо, из которого оно было клонировано.

Я бы хотел сделать это в командной строке. Более конкретно, я хотел бы иметь возможность открывать запросы на слияние из командной строки из одной ветви в другую (а не из клона в начальное хранилище).

Поскольку я не использую Github, я не могу использовать Специальные инструменты или библиотеки Github . Возможно ли это?

Ответы [ 4 ]

73 голосов
/ 02 сентября 2011

Ответ , данный svick , неверен.Это возможно возможно.

Есть git request-pull, который является частью набора Git.Используя этот инструмент командной строки, вы можете создать запрос извлечения, который может быть отправлен по электронной почте.

Пример:
ваш origin содержит ветвь master.Теперь вы создаете локальную ветку исправлений ошибок fix, внедряете исправление ошибок и переводите эту ветвь fix в origin:

git push origin fix:fix

Затем вы хотите, чтобы кто-то объединил изменения, сделанные в fix ветвь в master.Создайте запрос на получение с помощью

git request-pull master origin

. Это создаст текст в следующем формате:

The following changes since commit <SHA of master>:

  <commit message of SHA of mster>

are available in the git repository at:
  <repo location> fix

<User Name> (<Number of Commits>):
      <messages of the commits>
      ...

 <changed files>
 ...
 <file statistics>

Если запрос на слияние будет отправлен кому-то, кто не может получить доступ к вашему репо, где выподтолкнув ваши изменения, всегда есть возможность сделать это с git format-patch.

После того, как ваша ветвь fix переместится на origin (вам даже не нужно это делать)находясь в ветке fix, создайте патч, используя

git format-patch master..

. Это создаст файл патча для каждого коммита, который вы сделали в fix с момента ветвления master.Вы можете связать сгенерированные .patch файлы с

tar czf fix.tgz *.patch

, а затем отправить кому-нибудь, например, по электронной почте для проверки и применения.

Ради полноты: применение исправлений можетбыть сделано с git am.

5 голосов
/ 31 октября 2012

Вы можете использовать этот инструмент командной строки: https://github.com/brauliobo/gitorious-merge-request

./gitorious-merge-request -e brauliobo@gmail.com -s 'test' -r '~brauliobo/noosfero/brauliobos-noosfero' -a easysafeinstall -b master -t 'noosfero/noosfero'
3 голосов
/ 01 сентября 2011

В самом git нет такого понятия, как «запрос на слияние». Так что, если бы это было возможно, потребовались бы специальные инструменты Gitorious. Это невозможно в чистом виде.

0 голосов
/ 24 июня 2019

Gitlab добавляет эту функцию с v11.10.После принятия окончательных изменений вместо push просто используйте:

git push -o merge_request.create

для создания запроса на слияние.Подробнее в doc .

...