Unduh permintaan tarik Github sebagai unified diff

Jawaban:

486

Untuk melihat komit sebagai file diff / patch, cukup tambahkan .diffatau .patchke akhir URL, misalnya:

Simone Carletti
sumber
13
Terima kasih banyak. Dan ada juga .patch. Mengapa ini tidak terpapar dalam GUI? Bagaimana orang menemukan ini?
Thilo
45
Itu tidak didokumentasikan untuk menjaga stackoverflow dalam bisnis. Jujur saja, itu FAQ # 2
lihat
Juga karena git pullmetode yang disukai untuk mengunduh dan menerapkan perubahan.
Tekkub
Ooooh, terima kasih, jawaban ini bernilai emas. (Blogposting itu juga.) Saya bertanya-tanya bagaimana orang waras bisa bekerja tanpanya, dan mengapa itu tidak terekspos di UI Web jelek-cukup-seperti-itu.
mirabilos
8
Menilai dari apa yang dikembalikan dan tautan dalam dokumen di developer.github.com/v3/media/… , .diffURL memberikan perbedaan langsung ke cabang default berdasarkan pada git-diff git-scm.com/docs/git-diff output, dan .patchURL memberikan gabungan komit individu dalam PR (masing-masing relatif terhadap komitmen orang tua mereka) dalam format yang sesuai untuk email berdasarkan output git-format-patch git-scm.com/docs/git-format-patch .
rakslice
49

Agak terkait, untuk membiarkan git unduh permintaan penarikan 123 dan menambalnya mylocalbranchsecara lokal, jalankan:

git checkout -b mylocalbranch
git pull origin pull/921/head
thakis
sumber
10
Atau untuk mendapatkan permintaan tarik ke cabang PR baru git fetch origin pull/921/head:PRdan kemudian bergabung dengan cabang Anda saat ini, memberi Anda kesempatan untuk meninjau perubahan git merge PR --no-commit --no-ff
MoonStom
4
Dokumentasi lengkapnya ada di help.github.com/articles/checking-out-pull-requests-locally
JBert
Ini mengharuskan Anda untuk menyiapkan Git dengan kredensial Anda. Anda tidak dapat secara anonim menguji perubahan yang diajukan (seperti Anda bisa dengan menerapkan diff secara manual). Contoh lain dari Git mengambil alur kerja sederhana dan membuatnya sulit.
jww
2

Untuk mendapatkan perubahan PR ke repo lokal Anda dalam status bertahap tetapi tidak berkomitmen, sehingga Anda dapat meninjau:

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

Dan untuk menghasilkan file tambalan dari itu:

git diff --cached > pr123.diff    
Bill Hollings
sumber