Ответ 1
В git нет такой вещи, как "запрос слияния". Итак, если это будет возможно, для этого потребуются инструменты Gitorious. Это невозможно в чистом git.
Я использую установку Gironious позади брандмауэра.
Я могу зайти в веб-приложение и создать запрос на выгрузку из клона и настроить мастер-репо, из которого он был клонирован.
Я хотел бы иметь возможность сделать это в командной строке. Более конкретно, я хотел бы иметь возможность открывать запросы слияния из командной строки из одной ветки в другую (а не из репозитория клонирования в семя).
Поскольку я не использую Github, я не могу использовать специальные инструменты или библиотеки Github. Это возможно?
В git нет такой вещи, как "запрос слияния". Итак, если это будет возможно, для этого потребуются инструменты Gitorious. Это невозможно в чистом git.
Ответ, данный svick, неверен. Вполне возможно.
Там git request-pull
который входит в комплект Git. Используя этот инструмент командной строки, вы можете создать запрос на перенос, который может быть отправлен на E-Mail.
Пример:
ваше 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
а затем отправить кому-то, например, через E-Mail, чтобы просмотреть и применить.
Ради полноты: применение патчей может быть выполнено с помощью git am
.
Вы можете использовать этот инструмент командной строки: https://github.com/brauliobo/gitorious-merge-request
./gitorious-merge-request -e [email protected] -s 'test' -r '~brauliobo/noosfero/brauliobos-noosfero' -a easysafeinstall -b master -t 'noosfero/noosfero'
Gitlab добавляет эту функцию с v11.10. После внесения ваших окончательных изменений вместо push
просто используйте:
git push -o merge_request.create
создать запрос на слияние. Подробнее в док.