Kun je pull-verzoeken uitgeven vanaf de opdrachtregel op GitHub?

Het lijkt erop dat je met github.com moet communiceren om een ​​pull-verzoek te starten. Is dit zo?


Antwoord 1, autoriteit 100%

UPDATE: de opdracht hubis nu een officieel github-project en ondersteunt ook het maken van pull-verzoeken

ORIGINEEL:

Het lijkt bijzonder handig om toe te voegen aan de hub-opdracht: http://github.com/defunkt/hub of de github-edelsteen: http://github.com/defunkt/github-gem

Ik raad aan om een ​​probleem in te dienen bij de projecten die erom vragen. De github-jongens reageren behoorlijk.


Antwoord 2, autoriteit 44%

Git wordt nu geleverd met een subcommando 'git request-pull' [-p] <start> <url> [<end>]

Je kunt de documenten hier

bekijken

Misschien vind je dit handig, maar het is niet precies hetzelfde als de functie van GitHub.


Antwoord 3, autoriteit 24%

Met de Hub command-line wrapperkun je het koppelen aan git en dan kun je
git pull-request

Van de man-pagina van hub:

  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.

Antwoord 4, autoriteit 17%

OPMERKING: Some of this answer is now outdated.(2022-01-27)
(Bijvoorbeeld met behulp van de gh Gem.)
Momenteel zijn de enige tools die dit kunnen doen huben gh.


Een man zoekt als…

man git | grep pull | grep request

geeft

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

Maar ondanks de naam is het niet wat je wilt. Volgens de documenten:

Genereer een verzoek waarin u uw upstream-project vraagt ​​om wijzigingen door te voeren in
hun boom. Het verzoek, afgedrukt naar de standaarduitvoer, begint met de
branchebeschrijving, vat de wijzigingen samen en geeft aan van waaruit ze
kan worden getrokken.

@HolgerJustnoemde de github-edelsteen die doet wat je wilt:

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

Anderen hebben het officiële hubpakket van github genoemd:

sudo apt-get install hub

of

brew install hub 

dan

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

Antwoord 5, autoriteit 13%

Naast github/hub, die werkt als een proxy voor Git, je hebt nu (februari 2020) cli/cli:

Zie “Verhoog uw ervaring met de opdrachtregel: GitHub CLI is nu in bèta

Maak een pull-verzoek

Maak een branch, maak verschillende commits om de bug beschreven in het probleem op te lossen, en gebruik gh om een ​​pull-verzoek te maken om je bijdrage te delen.

cli/cli pr creatie -- https://i1.wp.com/user-images.githubusercontent.com/10404068/74261506-35df4080-4cb0-11ea-9285-c41583009e6c.png?ssl=1

Door GitHub CLI te gebruiken om pull-verzoeken te maken, maakt het ook automatisch een fork als je er nog geen hebt, en het pusht je branch en maakt je pull-verzoek om je wijziging te laten mergen.


En in april 2020: “GitHub CLI ondersteunt nu automatisch invullen van pull-verzoeken en aangepaste configuratie

GitHub CLI 0.7 is uit met een aantal van de meest gevraagde verbeteringen op basis van de feedback die onze bètagebruikers hebben gegeven.
Sinds de laatste kleine release, 0.6, zijn er drie hoofdkenmerken:

  • Configureer ghom je favoriete editor te gebruiken met gh config set editor [editor].
  • Configureer ghals standaard SSH met gh config set git_protocol ssh.
    Het standaard Git-protocol is HTTPS.
  • Vul de titel en hoofdtekst van een pull-verzoek van je commits automatisch in met gh pr create --fill.

Dus:

gh pr create --fill

Antwoord 6, autoriteit 7%

Ik gebruik een eenvoudige alias om een ​​pull-verzoek te maken,

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

Antwoord 7, autoriteit 6%

Uiteindelijk heb ik er zelf een gemaakt, ik merk dat het beter werkt dan de andere oplossingen die er waren.

https://npmjs.org/package/pullr


Antwoord 8, autoriteit 4%

Ik heb onlangs een tool gemaakt die precies doet wat je wilt:

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

Het automatiseert alles in een enkele opdracht, het forken van de repo, het pushen van de PR enz. Het ondersteunt ook het bijwerken van de PR als je deze moet bewerken/repareren!


Antwoord 9

Ik heb deze tool eerder gebruikt – hoewel het lijkt alsof er eerst een probleem moet worden geopend, is het super handig en stroomlijnt het de workflow echt als je github-probleemopsporing gebruikt. git open-pull en dan wordt een pull-verzoek ingediend vanuit welke branch je ook bent of selecteert.
https://github.com/jehiah/git-open-pull

BEWERKEN: Het lijkt erop dat je direct problemen kunt creëren, dus deze tool is een goede oplossing.


Antwoord 10

Je kunt github official CLIinstalleren om PR te maken en andere soorten dingen.

Instellen:

gh auth login

Om PR te maken:

gh pr create

Samenvoegen:

gh pr merge


Antwoord 11

Ja. U kunt het hubCLI-hulpprogramma installeren.
Op MACOS: brew install hub

Je hebt een eenmalige GitHub-token nodig om in te loggen.

User -> Dev settings -> Personal tokens -> Generate
(Zie: https://github.com/settings/tokens)

git checkout -b mybranch
hub pull-request -b master -h mybranch
#user:     your_user_name
#password: your_git_token

Antwoord 12

Persoonlijk vind ik het leuk om de diff in GitHub te bekijken voordat ik de PR open. Daarnaast schrijf ik de PR-beschrijving liever op GitHub.

Om die redenen heb ik een alias gemaakt (of technisch gezien een functie zonder argumenten), die de diff in GitHub opent tussen je huidige branch en master. Als je dit toevoegt aan je .zshrcof .bashrc, kun je eenvoudig open-prtypen en je wijzigingen in GitHub zien. Ter info, je moet je wijzigingen hebben gepusht.

function open-pr() {
  # Get the root of the github project, based on where you are configured to push to.  Ex: https://github.com/tensorflow/tensorflow
  base_uri=$(git remote -v | grep push | tr '\t' ' ' | cut -d ' ' -f 2 | rev | cut -d '.' -f 2- | rev)
  # Get your current branch name
  branch=$(git branch --show-current)
  # Create PR url and open in the default web browser
  url="${base_uri}/compare/${branch}/?expand=1"
  open $url
}

Other episodes