Можете ли вы выдавать запросы на тягу из командной строки на GitHub?

Кажется, вам нужно взаимодействовать с github.com, чтобы инициировать запрос на перенос. Это так?

Ответ 1

ОБНОВЛЕНИЕ: команда hub теперь является официальным проектом github и также поддерживает создание запросов извлечения

ОРИГИНАЛ:

Похоже, что особенно полезно добавить в команду hub: http://github.com/defunkt/hub или гем github: http://github.com/defunkt/github-gem

Я предлагаю подать проблему с теми проектами, просящими это. Ребята из Github довольно отзывчивы.

Ответ 3

С оболочкой командной строки концентратора вы можете связать ее с git, а затем вы можете сделать git pull-request

Из справочной страницы концентратора:

   git pull-request [-f] [TITLE|-i ISSUE|ISSUE-URL] [-b BASE] [-h HEAD]
          Opens a pull request on GitHub for the project that the "origin" remote points to. The default head of the pull request is the current branch. Both base and head of the pull request can be explicitly given in one  of  the  following  formats:  "branch",  "owner:branch",
          "owner/repo:branch". This command will abort operation if it detects that the current topic branch has local commits that are not yet pushed to its upstream branch on the remote. To skip this check, use -f.

          If TITLE is omitted, a text editor will open in which title and body of the pull request can be entered in the same manner as git commit message.

          If instead of normal TITLE an issue number is given with -i, the pull request will be attached to an existing GitHub issue. Alternatively, instead of title you can paste a full URL to an issue on GitHub.

Ответ 4

Человек ищет как...

man git | grep pull | grep request

дает

git request-pull <start> <url> [<end>]

Но, несмотря на название, это не то, что вы хотите. Согласно документам:

Создайте запрос с просьбой к вашему исходному проекту внести изменения в их дерево. Запрос, выводимый на стандартный вывод, начинается с описание ветки, суммирует изменения и указывает откуда они можно вытащить.

@HolgerJust упомянул драгоценный камень github, который делает то, что вы хотите:

sudo gem install gh 
gh pull-request [user] [branch]

Другие упоминают официальный пакет hub от github:

sudo apt-get install hub

или

brew install hub 

затем

hub pull-request [-focp] [-b <BASE>] [-h <HEAD>]

Ответ 5

Я закончил создание своего, я считаю, что он лучше работает с другими решениями, которые были вокруг.

https://npmjs.org/package/pullr

Ответ 6

Недавно я создал инструмент, который делает именно то, что вы хотите:

https://github.com/jd/git-pull-request

Он автоматизирует все в одной команде, разворачивает репо, нажимает PR и т.д. Он также поддерживает обновление PR, если вам нужно его отредактировать/исправить!

Ответ 7

Этот ответ является альтернативным способом использования команды git request-pull. Используя этот подход, вы не будете создавать запрос на извлечение напрямую из командной строки, а скорее из командной строки это ускорит и упростит создание запроса на перенос на github, удалив несколько шагов.

Я не использую команду request-pull по двум причинам:

  • Я нахожу поиск имени другого репозитория, с которым вы хотели бы сделать запрос на вытягивание, слишком долгое время.
  • Возможность предварительного просмотра отформатированного текста перед созданием запроса на перенос.

Почему бы нам не автоматизировать создание вкладки для сравнения текущей ветки с другой, используя существующую функцию сравнения github?

Я создал для этого оболочку script и создал псевдоним, который указывает на оболочку script:

git symbolic-ref HEAD | 
sed -e "s/^refs\/heads\///" | 
awk '{printf "https://github.com/USERACCOUNT/REPOSITORY-NAME/compare/%s?expand=1",$1}' |
xargs open

Примечание: USERACCOUTN и REPOSITORY-NAME необходимо изменить на ваш.

помещает этот script в файл с именем create-pull-request.sh. то мы могли бы просто создать псевдоним для запуска script, добавив эту строку в ваш .bashrc файл:

alias makepullrequest="sh PATH-TO-THE-SCRIPT/create-pull-request.sh"

Ответ 8

Я использую простой псевдоним для создания запроса извлечения,

alias pr='open -n -a "Google Chrome" --args "https://github.com/user/repo/compare/pre-master...nawarkhede:$(git_current_branch)\?expand\=1"'

Ответ 9

Я использовал этот инструмент раньше - хотя кажется, что сначала нужно открыть проблему, это очень полезно и действительно упрощает рабочий процесс, если вы используете отслеживание проблем github. git open-pull, а затем запрос на вытягивание отправляется из любой ветки, на которой вы находитесь, или выберите. https://github.com/jehiah/git-open-pull

EDIT: Похоже, вы можете создавать проблемы "на лету", поэтому этот инструмент является хорошим решением.