Rumah > Soal Jawab > teks badan
之前用 SAE
的时候学了点 svn
,后来发现还是 Git
先进,再后来就把注册许久不用的 Github
账号拿出来捣鼓,结果对 pull request
很迷惑。
Update:
[上一秒] pull 不是拉么?怎么地想也感觉是 push request 才对。
[下一秒] 哦!对作者来说是 pull 。。。
那就是两者一点都不搭边咯,一个是 CLI
的命令,一个是 Github
上概念性的东西。
仅有的幸福2017-04-28 09:08:25
Biar saya lebih jelas jawapan dan perbincangan sebelum ini adalah palsu dan tidak menunjuk kepada kebenaran.
permintaan tarik dan git pull
pada Github bukanlah tidak berkaitan sepenuhnya, tetapi hubungan yang paling dekat dengannya ialah perintah lain git request-pull
.
Mari kita bercakap tentang penjelasan konsep dahulu. Mungkin kebanyakan orang (termasuk subjek) akan faham permintaan tarik seperti ini:
Saya menyerahkan permintaan tarik untuk menyepadukan perubahan saya ke hulu (biasanya sumber garpu anda)
Dalam kes ini, rasanya permintaan tolak sepatutnya menjadi yang paling sesuai, kerana tindakan ini sepenuhnya inisiatif saya!
Walau bagaimanapun, pemahaman ini mengabaikan premis: Adakah anda mempunyai kebenaran untuk menolak ke hulu? Dalam erti kata lain, bolehkah anda menulis huluan terus?
Ini terbahagi kepada dua situasi (bersamaan dengan dua aliran kerja berasaskan Git):
Akhirnya, salah faham ini berpunca daripada kekurangan pemahaman yang lengkap tentang cara aliran kerja permintaan tarik berfungsi. Penerangan yang betul tentang tindakan permintaan tarik hendaklah seperti ini:
Saya memulakan permintaan (untuk Github, ia adalah permintaan HTTP yang memanggil API yang sepadan, dan kemudian Github melaksanakannya pada bahagian belakang
git request-pull
, lihat di bawah untuk butiran), permintaan ini (permintaan dalam permintaan HTTP ) ialah permintaan untuk (meminta dalam permintaan tarik) pengarang hulu untuk menarik (permintaan tarik masuk) berubah dari garpu saya.
Ini adalah pemahaman yang betul.
Akhir sekali, mari bercakap git request-pull
. Apabila anda membuat permintaan permintaan tarik, subperintah git request-pull
sebenarnya dilaksanakan di belakang tabir. Tandatangan (utama) subperintah ini ialah:
bash
$ git request-pull <start> <url> [<end>]
Arahan ini menjana ringkasan perubahan (dalam komit) dan URL yang digunakan untuk mengambilnya. Ringkasan adalah output kepada stdout dalam teks biasa format tetap, yang anda boleh ubah hala dan menulis kod untuk pemprosesan seterusnya. Beginilah cara Github menganalisis setiap permintaan tarik, supaya anda boleh melihat komitmen, masa, pengarang dan maklumat lain yang sepadan.
Jika pengarang huluan memilih untuk menerima permintaan selepas menerima permintaan tarik, Github akan memanggil git pull
untuk menarik kod daripada alamat yang ditentukan (termasuk dalam maklumat yang dijana oleh git request-pull
). Penulis huluan secara semula jadi mempunyai kebenaran untuk menulis ke repo huluan, jadi proses yang lengkap dapat direalisasikan.
Adalah disyorkan untuk membaca manual Git rasmi, terutamanya bab ini: Git Diedarkan - Menyumbang kepada projek saya jamin anda akan mendapat banyak manfaat selepas membacanya.