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


298

Схоже, вам потрібно взаємодіяти з github.com, щоб ініціювати запит на притягнення. Це так?


2
Я не бачу нічого в їх API для виконання запитів на тягнення: development.github.com
Adam Vandenberg


1
На якій операційній системі ви збираєтесь це робити?
ІгорГанапольський

Як це зробити в Windows 8 або 10?
Матіванан КП

Я створив для цього сценарій bash , якщо когось цікавить.
MVR

Відповіді:


114

ОНОВЛЕННЯ : Команда hub тепер є офіційним проектом github, а також підтримує створення запитів на тягу

ОРИГІНАЛ :

Здається, особливо корисну річ, яку потрібно додати до команди hub: http://github.com/defunkt/hub або github gem: http://github.com/defunkt/github-gem

Я пропоную подати питання з тими проектами, які просять його. Хлопці з Github досить чуйні.


8
GitHub-камінь включав засіб для створення підтягування запитів для вікових груп: gh pull-request [user] [branch].
Холгер Тільки

6
Чи працює це, без того, щоб Github спочатку відправив репо, тобто з прямого клонування вихідного репо?
Харі Карам Сінгх

1
@Holger Просто та будь-хто інший: це просто створює текст запиту на витяг та не обходить необхідність вилки на Github. Я поки не знайшов способу цього. Я маю намір спробувати утиліту "pullr", розміщену найближчим часом. Дивіться тут для видачі людей , які звертаються до повної підтримки висувною запити від GitHub-каменю.
товариш

1
для швидкої команди з використанням hub:hub pull-request -m "message pull request" -b master -h your_branch
Гуджарат Сантана

Не знаєте, чому це не згадується у вищезазначених документах, але для швидкого злиття запиту на hub merge https://github.com/repo/pull/1
витяг, перевірте

53

Git тепер поставляється з підкомандою 'git request-pull' [-p] <start> <url> [<end>]

Ви можете побачити документи тут

Ви можете вважати це корисним, але воно не зовсім збігається з функцією GitHub .


7
@NathanBasanese Він генерує читаний людиною текст, що описує запит на витяг. Документи git та книга GitHub говорять, щоб надіслати це електронною поштою керівнику проекту, хтось із правами запису на спільне репо (можливо, github). Обслуговувач перевіряє текст надісланого вами запиту (замість того, щоб використовувати онлайн-процес запиту на запит github). Вони можуть виконати git pullURL-адресу та відділення, вказані у вашому запиті на виклик, щоб об'єднати ваші зміни в їх локальний клон і перенести ці зміни до github.
варильні панелі

30

За допомогою обгортки командного рядка Hub ви можете зв’язати його з 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.

2
Не знав про Hub, він доступний через домашню мову: brew install hubЦе здається правильною відповіддю для користувачів Mac.
wfbarksdale

1
// Чи є десь в Інтернеті, до яких я можу вказати людям для отримання додаткової інформації про Хаб?
Натан Басанес

19

Пошук людини, як ...

man git | grep pull | grep request

дає

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

Але, незважаючи на ім’я, це не те, що ви хочете. Згідно з документами:

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

@HolgerJust згадав про gemub gemub, який робить те, що ви хочете:

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>]

3
Це створює підсумок змін, що очікують на розгляд, це не має нічого спільного з запитом на витяг, який
надсилається

1
@Flov Під "Це", я вважаю, ви маєте на увазі git request-pullрядок. Так, це має сенс, але я здивований, що git не має команди надсилати електронну пошту, як github. Зрештою, git config user.emailдоступне для нього. Особливо з назвою команди pull-request.
варильні панелі

2
Для Ubuntu, схоже, github-cliце більше не доступно після Precision ... Я відкрив питання, щоб попросити альтернативу.
ІсаакS

7

Я закінчив робити своє , я вважаю, що він працює краще за інші рішення, які були навколо.

https://npmjs.org/package/pullr


6
Намагався робити тягач -n всередині клонованого сховища. Дав мені помилку при відкритті ... / clonedRepo / undefined / .pullr-token-cache у Windows 7. Можливо, ви хочете мати ще якусь документацію - наприклад, використання прикладу?
BT

5

Нещодавно я створив інструмент, який робить саме те, що ви хочете:

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

Він автоматизує все в одній команді, розгортаючи репо, натискаючи на PR тощо. Він також підтримує оновлення PR, якщо вам потрібно відредагувати / виправити!


5

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

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

2

Крім того github/hub, що є проксі-сервісом до Git , у вас зараз (лютий 2020 року) є cli/cli:

Див. " Перезарядження вашого командного рядка: GitHub CLI зараз у бета-версії "

Створіть запит на тягу

Створіть відділення, зробіть кілька комісій, щоб виправити помилку, описану у випуску, та використовуйте gh, щоб створити запит на виклик, щоб поділитися своїм внеском.

cli / cli pr створення - https://i1.wp.com/user-images.githubusercontent.com/10404068/74261506-35df4080-4cb0-11ea-9285-c41583009e6c.png?ssl=1

Використовуючи GitHub CLI для створення запитів на тягу, він також автоматично створює вилку, коли у вас її ще немає, і вона висуває вашу гілку і створює ваш запит на потяг, щоб об'єднати зміни.


І в квітні 2020 року: " GitHub CLI тепер підтримує автоматичне заповнення запитів на витягування та налаштування "

GitHub CLI 0.7 не містить декілька найбільш затребуваних вдосконалень за відгуками наших бета-користувачів.
З моменту останнього незначного випуску, 0,6, є три основні особливості:

  • Налаштуйте ghдля використання потрібний редактор gh config set editor [editor].
  • Налаштуйте ghSSH за замовчуванням за допомогою gh config set git_protocol ssh.
    Протокол Git за замовчуванням - HTTPS.
  • Автозаповнення заголовка та тіла запиту на виклик із ваших зобов’язань gh pr create --fill.

Тому:

gh pr create --fill

1

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

EDIT: Схоже, ви можете створювати проблеми під час руху, тому цей інструмент є хорошим рішенням.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.