ดาวน์โหลดคำร้องขอการดึง Github เป็น diff แบบรวม


277

ฉันจะดาวน์โหลดการเปลี่ยนแปลงที่มีอยู่ในคำขอดึง Github เป็น diff แบบรวมได้อย่างไร


โดยปกติลิงค์แพทช์ PR จะถูกส่งไปยังบุคคลที่ยอมรับ PR
kenorb

สิ่งนี้ยังไม่ได้ใช้ในGitLabแต่ฉันได้สร้างคำขอคุณลักษณะดังนั้นโปรดเพิ่มคะแนนของคุณ
colan

คำตอบ:


486

ในการดูคอมมิชชันในฐานะไฟล์ diff / patch เพียงแค่เพิ่ม.diffหรือเพิ่ม.patchที่ส่วนท้ายของ URL เช่น:


13
เยี่ยมมากขอบคุณ .patchและนอกจากนี้ยังมี ทำไมสิ่งนี้จึงไม่ปรากฏใน GUI เราจะค้นพบสิ่งนี้ได้อย่างไร?
Thilo

45
ไม่มีการบันทึกไว้เพื่อให้ stackoverflow อยู่ในธุรกิจ สุจริตนั่นคือคำถามที่พบบ่อย # 2
sehe

เพราะgit pullเป็นวิธีที่ต้องการในการดาวน์โหลดและใช้การเปลี่ยนแปลง
Tekkub

Ooooh ขอบคุณคำตอบนี้มีค่าทองคำ (การโพสต์บล็อกนั้นด้วย) ฉันสงสัยว่าทุกคนที่มีสติสามารถทำงานได้อย่างไรและทำไมมันถึงไม่ปรากฏใน Web UI ที่เส็งเคร็งมากพอ ๆ กับที่เป็น UI
mirabilos

8
ตัดสินโดยสิ่งเหล่านี้กลับมาและการเชื่อมโยงในเอกสารที่ได้developer.github.com/v3/media/...ที่.diffURL ที่ให้ความแตกต่างตรงไปยังสาขาเริ่มต้นขึ้นอยู่กับgit-diff git-scm.com/docs/git-diffเอาท์พุท และ.patchURL ให้เรียงต่อกันของการกระทำของแต่ละบุคคลในการประชาสัมพันธ์ (แต่ละเทียบกับพ่อแม่ของพวกเขากระทำ) ในรูปแบบที่เหมาะสมสำหรับการส่งอีเมลอยู่บนพื้นฐานของgit-format-patch git-scm.com/docs/git-format-patchเอาท์พุท
rakslice

49

ค่อนข้างเกี่ยวข้องเพื่อให้คำขอดึงการดาวน์โหลด git 123 และแก้ไขลงmylocalbranchในเครื่องให้รัน:

git checkout -b mylocalbranch
git pull origin pull/921/head

10
หรือรับคำขอดึงเข้าสู่สาขาประชาสัมพันธ์ใหม่ git fetch origin pull/921/head:PRจากนั้นรวมกับสาขาปัจจุบันของคุณทำให้คุณมีโอกาสตรวจสอบการเปลี่ยนแปลง git merge PR --no-commit --no-ff
MoonStom

4
เอกสารฉบับเต็มอยู่ที่help.github.com/articles/checking-out-pull-requests-locally
JBert

สิ่งนี้ต้องการให้คุณติดตั้ง Git ด้วยข้อมูลประจำตัวของคุณ คุณไม่สามารถทดสอบการเปลี่ยนแปลงที่เสนอได้โดยไม่ระบุชื่อ (เช่นคุณสามารถทำได้ด้วยตนเองโดยใช้ diff) อีกตัวอย่างหนึ่งของการใช้ Git ทำให้เวิร์กโฟลว์ง่ายและทำให้มันยาก
jww

2

ในการรับการเปลี่ยนแปลง PR ไปสู่การซื้อคืนภายในเครื่องของคุณในสถานะที่ไม่มีข้อผูกมัดดังนั้นคุณสามารถตรวจสอบ:

git pull origin pull/123/head --no-commit

และเพื่อสร้างไฟล์แก้ไขจากที่:

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