คุณสามารถส่งคำขอดึงออกจากบรรทัดคำสั่งบน GitHub ได้หรือไม่


298

ดูเหมือนว่าคุณต้องโต้ตอบกับ github.com เพื่อเริ่มคำขอดึง เป็นเช่นนี้หรือไม่


2
ฉันไม่เห็นอะไรเลยใน API ของพวกเขาสำหรับการทำคำขอดึง: develop.github.com
Adam Vandenberg

8
ตอนนี้มีอยู่: developer.github.com/v3/pulls/#create-a-pull-request
seanf

1
ระบบปฏิบัติการใดที่คุณต้องการจะทำ
IgorGanapolsky

วิธีการทำเช่นนี้ใน Windows 8 หรือ 10
Mathivanan KP

ฉันสร้างสคริปต์ทุบตีสำหรับสิ่งนี้หากใครสนใจ
mvr

คำตอบ:


114

ปรับปรุง : คำสั่งฮับตอนนี้เป็นโครงการ GitHub อย่างเป็นทางการและยังสนับสนุนการสร้างคำขอดึง

เดิม :

ดูเหมือนว่าสิ่งที่มีประโยชน์อย่างยิ่งที่จะเพิ่มในคำสั่งฮับ: http://github.com/defunkt/hubหรือ github gem: http://github.com/defunkt/github-gem

ฉันขอแนะนำให้ยื่นปัญหากับโครงการที่ขอมา พวก GitHub ตอบสนองได้ค่อนข้างดี


8
GitHub gh pull-request [user] [branch]พลอยรวมถึงสิ่งอำนวยความสะดวกในการสร้างการร้องขอดึงสำหรับทุกวัย:
Holger เพียง

6
มันทำงานได้โดยไม่ต้อง Github แยก repo ก่อนเช่นจากการโคลนโดยตรงของ repo แหล่งหรือไม่
Hari Karam Singh

1
@ Holger Just และคนอื่น ๆ : นั่นเป็นเพียงการสร้างข้อความคำขอดึงและไม่ได้ผ่านความต้องการส้อม on-Github ฉันยังไม่พบวิธีรอบ ๆ ฉันตั้งใจจะลองใช้ยูทิลิตี้ 'pullr' ที่โพสต์ด้านล่างนี้ในไม่ช้า ดูที่นี่สำหรับปัญหาของคนที่ขอรับการสนับสนุนการร้องขอแบบดึงเต็มจาก github-gem
คู่ครอง

1
สำหรับการใช้คำสั่งอย่างรวดเร็วhub:hub pull-request -m "message pull request" -b master -h your_branch
Gujarat Santana

ไม่ทราบว่าทำไมถึงไม่พูดถึงในเอกสารข้างต้น แต่สำหรับการร้องขอการดึงแบบรวดเร็วให้เช็คเอาต์สาขาหลักของคุณhub merge https://github.com/repo/pull/1
ธันวาคม

53

ตอนนี้ Git มาพร้อมกับคำสั่งย่อย 'git request-pull' [-p] <start> <url> [<end>]

คุณสามารถดูเอกสารได้ที่นี่

คุณอาจพบว่ามีประโยชน์นี้ แต่มันเป็นไปไม่ตรงเช่นเดียวกับคุณลักษณะของ GitHub


7
@NathanBasanese มันสร้างข้อความที่มนุษย์สามารถอ่านได้อธิบายการร้องขอการดึง หนังสือgitและหนังสือGitHubบอกให้ส่งอีเมลนี้ถึงผู้ดูแลโครงการผู้ที่มีสิทธิ์ในการเขียนใน repo ที่แชร์ (อาจเป็น GitHub) ผู้ดูแลตรวจสอบข้อความคำขอดึงที่คุณส่ง (แทนที่จะใช้กระบวนการดึงคำขอออนไลน์ของ Github) พวกเขาสามารถทำgit pullURL และสาขาที่ระบุไว้ในคำขอดึงเพื่อรวมการเปลี่ยนแปลงของคุณเข้ากับโคลนในพื้นที่ของพวกเขาและผลักดันการเปลี่ยนแปลงเหล่านี้ขึ้นไปยัง Github
เตาแก๊ส

30

ด้วยwrapper บรรทัดคำสั่ง Hubคุณสามารถเชื่อมโยงไปยังคอมไพล์แล้วคุณสามารถทำได้ 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 สามารถใช้งานผ่าน homebrew: brew install hubดูเหมือนว่าคำตอบที่ถูกต้องสำหรับผู้ใช้ mac
wfbarksdale

1
//, มีที่ไหนบ้างที่ออนไลน์ที่ฉันสามารถชี้ให้ผู้คนรับทราบข้อมูลเพิ่มเติมเกี่ยวกับฮับ?
นาธาน Basanese

19

คนค้นหาเช่น ...

man git | grep pull | grep request

จะช่วยให้

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

แต่ถึงแม้ว่าชื่อจะไม่ใช่สิ่งที่คุณต้องการ ตามเอกสาร:

สร้างคำขอที่ขอให้โครงการอัปสตรีมของคุณดึงการเปลี่ยนแปลงลงในแผนผัง คำร้องขอที่พิมพ์ไปยังเอาต์พุตมาตรฐานเริ่มต้นด้วยคำอธิบายสาขาสรุปการเปลี่ยนแปลงและระบุว่าสามารถดึงได้จากที่ใด

@ HolgerJustพูดถึง github gem ที่ทำในสิ่งที่คุณต้องการ:

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
สิ่งนี้สร้างบทสรุปของการเปลี่ยนแปลงที่รอดำเนินการ แต่ไม่มีอะไรเกี่ยวข้องกับคำขอดึงที่กำลังออกให้ผ่านทาง Github
Flov

1
@Flov โดย "นี่" ฉันถือว่าคุณหมายถึงgit request-pullบรรทัด ใช่แล้วมันสมเหตุสมผล แต่ฉันก็แปลกใจว่าคอมไพล์ไม่มีคำสั่งให้ส่งคำขอดึงอีเมลอย่างที่ github ทำ หลังจากทั้งหมดgit config user.emailมีให้มัน pull-requestโดยเฉพาะอย่างยิ่งกับคำสั่งที่มีชื่อว่า
เตาแก๊ส

2
สำหรับ Ubuntu ดูเหมือนว่าgithub-cliจะไม่สามารถใช้งานได้หลังจากแม่นยำ ... ฉันได้เปิดคำถามเพื่อขอทางเลือกอื่น
IsaacS

7

ฉันลงเอยด้วยการทำของตัวเองฉันพบว่ามันใช้งานได้ดีกว่าโซลูชันอื่น ๆ ที่อยู่รอบ ๆ

https://npmjs.org/package/pullr


6
พยายามดึง pullr -n ภายในที่เก็บโคลน ให้ฉันมีข้อผิดพลาดในการเปิด ... / clonedRepo / undefined / .pullr-token-cache บน windows 7 คุณอาจต้องการเอกสารเพิ่มเติม - เช่นการใช้งานตัวอย่าง?
BT

5

ฉันได้สร้างเครื่องมือเมื่อเร็ว ๆ นี้ที่ทำสิ่งที่คุณต้องการ:

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

มันทำทุกอย่างโดยอัตโนมัติด้วยคำสั่งเดียวฟอร์โก repo กด 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 มีคุณสมบัติหลักสามประการ:

  • การกำหนดค่าการใช้โปรแกรมแก้ไขที่คุณต้องการด้วยghgh config set editor [editor]
  • การกำหนดค่าที่จะเริ่มต้นกับgh SSH โปรโตคอล Git เริ่มต้นคือ HTTPSgh config set git_protocol ssh
  • gh pr create --fillป้อนอัตโนมัติชื่อเรื่องและเนื้อหาของการร้องขอดึงจากกระทำของคุณด้วย

ดังนั้น:

gh pr create --fill

1

ฉันเคยใช้เครื่องมือนี้มาก่อน - ดูเหมือนว่าจะต้องมีปัญหาที่ต้องเปิดก่อนมันมีประโยชน์มากและทำให้ขั้นตอนการทำงานคล่องตัวขึ้นถ้าคุณใช้การติดตามปัญหา GitHub git open-pull จากนั้นคำขอ pull จะถูกส่งจากสาขาใดก็ตามที่คุณเปิดหรือเลือก https://github.com/jehiah/git-open-pull

แก้ไข: ดูเหมือนว่าคุณสามารถสร้างปัญหาได้ทันทีเครื่องมือนี้จึงเป็นทางออกที่ดี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.