Kenapa "Fork me on GitHub"? [Tutup]

50

Saya mengerti bagaimana GitHub bekerja, tetapi satu hal yang saya bingung adalah, mengapa hampir setiap proyek OSS akhir-akhir ini memiliki tautan "Fork me on GitHub" di beranda mereka. Sebagai contoh,

http://jqtjs.com/ , http://www.daviddurman.com/flexi-color-picker/ , dan lainnya.

Mengapa ini sangat umum? Apakah mereka menginginkan / memerlukan validasi kode, memeriksa peningkatan keamanan / kinerja yang mungkin tidak mereka ketahui caranya?

Apakah ini dimaksudkan untuk menunjukkan bahwa ini adalah proyek kolaborasi - Anda dapat menambahkan peningkatan?

Apakah mereka bekerja untuk GitHub, atau ingin mempromosikan layanan mereka? Anehnya, saya pikir saya belum pernah melihat logo "Fork project on Bitbucket " baru-baru ini.

Reaksi pertama saya terhadap logo itu adalah bahwa proyek mungkin perlu dimodifikasi (bercabang) untuk mengintegrasikannya dengan apa pun yang berguna - atau bahwa mereka mendorong basis kode terfragmentasi, mendorong semua orang untuk membuat garpu proyek mereka sendiri. Tapi saya pikir itu bukan maksudnya.

NoBugs
sumber
23
Karena lebih mudah daripada menulis "jika Anda ingin berkontribusi pada proyek ini atau memeriksa sumbernya, lihat repositori kami di github". ;-)
nietonfir
1
Saya sedikit kagum tidak ada yang menyebutkan ... Apa itu, permainan kata? Sindiran? Tetapi kata-kata tertentu itu tidak akan bekerja dengan bitbucket; situs mereka memberi kesan lebih profesional daripada github. Karena itulah bagaimana saya memahami pertanyaan Anda pada bacaan pertama - "mengapa bitbucket tidak memilikinya?"
Izkata
2
Itu adalah widget sosial , mirip dengan yang muncul dengan tautan 'bagikan' pada pertanyaan / jawaban SE: Anda mendapatkan widget untuk Google+, Facebook, dan Twitter. Mereka siap digunakan untuk perancang situs, sehingga mudah diintegrasikan. Saya pikir tidak ada yang namanya Bitbucket, jadi tidak ada yang perlu diperhatikan: jika ada proyek yang memiliki widget 'garpu saya' buatan sendiri, mungkin tidak akan terlihat seperti yang lain, mungkin.
Luc Danton
Saya memberikan suara untuk menutup pertanyaan ini sebagai di luar topik karena ini tentang budaya perangkat lunak open source. Saat ini, pertanyaan tentang bagaimana masyarakat berkolaborasi bersama untuk menghasilkan, mendistribusikan, memasarkan, dan kadang-kadang menghasilkan uang dari proyek sumber terbuka ada di topik di Open Source Stack Exchange .
Thomas Owens

Jawaban:

20

Selain dari sisi kolaborasi asuh masalah ini, dari perspektif bisnis itu akan meningkatkan dan memperkuat lalu lintas, basis pengguna dan posisi pasar GitHub. Jadi ada sedikit strategi bisnis yang terkait dengannya juga.

Secara pribadi saya tidak keberatan dengan hal ini karena GitHub menyediakan layanan yang berharga bagi komunitas open source.

AsymLabs
sumber
23
Mengapa jawaban Anda dari perspektif GitHub? Orang-orang tidak menempatkan logo itu di situs mereka untuk memperkuat lalu lintas, basis pengguna, dan posisi pasar GitHub. Itu mungkin efek samping, tetapi bukan itu tujuannya . Bagaimana ini "strategi bisnis" GitHub? GitHub bahkan tidak bertanggung jawab untuk meletakkan logo ini di situs OSS (pengelola situs OSS adalah).
Ben Lee
3
@ Ben Lee Komentar Anda diterima dengan baik. Tetapi saya akan menegaskan bahwa tidak ada satu tujuan, tetapi banyak tujuan . Saya tidak menampik pandangan bahwa tujuan adalah untuk menumbuhkan kolaborasi, hanya bahwa kita juga harus mengakui bahwa GitHub juga bisnis (bisa dikatakan mereka adalah pemimpin pasar dalam industri ini), dan bahwa tujuan lain dari Fork Me on GitHub adalah untuk keuntungan strategis. Memang ini sukarela, tetapi tetap efektif. Itu membuat GitHub lebih terlihat di internet, bagian penting dari setiap strategi bisnis internet.
AsymLabs
2
@BenLee Seperti dicatat dmitri, Github memiliki halaman ini: github.com/blog/273-github-ribbons Apakah Bitbucket atau layanan lain memiliki sesuatu yang serupa?
NoBugs
75

Apakah ini dimaksudkan untuk menunjukkan bahwa ini adalah proyek kolaborasi - Anda dapat menambahkan peningkatan?

Ya: Anda tidak memiliki hak untuk mendorong komit langsung pada repo mereka.
Tetapi Anda memiliki kemungkinan untuk membayar repo mereka , yang menjadikannya repo Anda , dan mendorong komit dari sana, mempersiapkan permintaan tarikan .

garpu

VONC
sumber
2
Saya tahu Anda dapat melakukan percabangan, kemudian meminta Github, pertanyaan saya adalah mengapa mereka mengatakan "bercabang dengan saya di Github"?
NoBugs
6
@NoBugs untuk memastikan Anda tahu bagaimana berkontribusi kembali ke proyek mereka.
VonC
19
Saya pikir, fokus di sini lebih terletak pada "bercabang saya" daripada pada Github. Itu mungkin hanya karena Github adalah situs paling populer dari jenis ini. Saya tidak berpikir ada yang punya masalah besar jika Anda menggunakan Bitbucket. Pertanyaan yang bagus.
JensG
Saya tidak berpikir ada yang punya masalah besar jika Anda bercabang di gitorious.org , baik. Hanya saja hampir tidak ada yang melakukannya ...
Michael Paulukonis
37

Lencana "Fork me on Github" dimaksudkan untuk menunjukkan bahwa jika Anda diberi hak untuk berkontribusi pada proyek, atau menggunakannya sebagai titik awal untuk proyek Anda sendiri.

Ini agak menunjukkan bahwa "ini adalah proyek kolaboratif dan Anda dapat menambahkan peningkatan."

Ini memungkinkan Anda untuk bermain-main dengan kode atau melakukan spin-off dari proyek yang sama tanpa mempengaruhi sumber aslinya.

https://help.github.com/articles/fork-a-repo

Prinsip yang sama berlaku untuk semua host git lainnya.

Poin utama (di antara banyak lainnya) memberi hak untuk melakukan proyek adalah untuk

  • menumbuhkan kolaborasi - dengan memungkinkan orang untuk bekerja sama dalam meningkatkan proyek.
  • tambahkan pengetahuan - dengan memungkinkan orang mempelajari kode Anda.

Beberapa proyek yang mungkin Anda temui mungkin oleh staf Github untuk kebutuhan pribadi mereka sendiri. Mereka tidak ingin mempromosikan github. Anda dapat menemukan proyek dengan github di sini: https://github.com/github

Mengapa Anda tidak melihat lencana dari host lain adalah karena Github adalah platform hosting dan kolaborasi git yang paling populer.

Brian Kinyua
sumber
Persis. Alur kerja DVCS berarti saya dapat mempublikasikan hasil tanpa menimbulkannya pada orang lain. Forking berarti tidak harus meminta izin untuk membagikan apa pun yang ingin Anda bagikan. Jika Internet menyukai perubahan Anda, mereka akan menyerapnya.
Warren P
15

Bayangkan Anda menggunakan editor teks favorit Anda, dan setelah beberapa waktu Anda akan sangat menyukai beberapa fitur untuk diterapkan (seperti opsi Simpan file yang tidak diblokir).

Setelah memikirkan itu untuk yang kesebelas, Anda memutuskan untuk menulisnya sendiri. Setelah Anda menemukan halaman github dari proyek ini, Anda memiliki dua opsi:

  1. Unduh kode sumber, modifikasi, dan simpan sendiri.
  2. Garpu proyek di github dan kerjakan garpu Anda.

Jika Anda memilih opsi kedua, setelah membuat fitur Anda ditulis dengan baik dan teruji dengan baik, Anda dapat menyiapkan permintaan tarik dan kemudian seluruh proyek akan mendapat manfaat dari Anda.

Namun, jika Anda memilih jalur pertama, sangat mungkin bahwa Anda hanya akan melupakan modifikasi Anda dan tidak seorang pun kecuali Anda akan mendapat manfaat darinya (ya, Anda dapat membagikan kode secara manual, tetapi beberapa koder lain dapat dengan mudah melupakannya. Menggunakan github memaksa Anda untuk lebih bersosialisasi dengan pekerjaan orang lain).

Mengatakan 'fork me on a github' pemilik proyek hanya ingin memastikan bahwa Anda memilih untuk Fork on githubmengunduh kode dan menerbitkannya ke direktori home Anda.

Nemanja Boric
sumber
7

Itu hanya ada untuk menunjukkan bahwa ini adalah proyek open source dan Anda bercabang jika Anda mau, apa pun alasannya. Juga, lihat posting blog ini di GitHub: https://github.com/blog/273-github-ribbons

Pembaruan: Secara pribadi, saya menambahkan pita GitHub ini sehingga orang dapat menemukan saya di GitHub dan membintangi proyek saya;)

dmitry
sumber
6

Itu berarti mereka ada di github, di mana forking murah, dan mereka ingin mendorong kontribusi untuk meningkatkan perangkat lunak dan komunitas mereka.

Florian Margaine
sumber
5

Github sedang mencoba memperluas basis pengguna mereka untuk memasukkan pekerjaan kolaboratif, tidak hanya hosting kode sumber; dan dengan demikian mereka mendorong garpu dan mengirim metode permintaan tarik . Membuat tambalan dan mengirimkannya melalui email tidak akan menarik bagi kebanyakan orang selain programmer dan juga. Izin push tidak terlalu penting di sini, karena pada akhirnya sebagian besar pengguna git (atau mercurial, darcs, atau apa pun) dengan banyak pengetahuan tentang alat dan alur kerja pengembangan akan dapat mengirim email dengan tambalan yang terpasang entah bagaimana.

Juga, Github lebih tentang jejaring sosial daripada hosting kode: profil Anda, repo, dan perubahan membentuk identitas Anda sebagai pengembang perangkat lunak, seperti halnya tweet Anda dan '+1'. Semua pita dan kancing dan sejenisnya digunakan sebagai sarana untuk menyiasati diri sendiri, jalan menuju profil orang yang menjadi milik proyek tersebut. Saat ini, memiliki profil Github yang layak adalah hal pertama yang diharapkan dari seorang pengembang. Meskipun saya menggunakan lincah untuk apa pun, saya mendorong ke Github via hg-git untuk alasan ini.

Akhirnya, pita "Fork me on Github" ini sedikit berbeda dengan tujuan dari tombol "Tweet this Article" atau "Bagikan Hal Ini di G +". (Juga memiliki garpu repositori pada daftar repo Anda berarti "Saya adalah pengguna hal ini", ada ribuan garpu Linux di github, meskipun Linus Torvalds tidak menerima permintaan tarik.)


sumber
2

itu cara lain untuk mengatakan "tambalan dipersilakan".

alih-alih mengirim permintaan dan permintaan fitur, orang dapat mengirim permintaan tarik tempat penulis asli meninjau, memvalidasi, dan menggabungkan permintaan tarik.

forking historis adalah tindakan bermusuhan yang dilakukan oleh kelompok yang bertentangan dengan manajemen proyek asli, misalnya OpenOffice Sun yang digunakan untuk menolak plugin C / C ++ SVG yang cepat karena ia lebih memilih plugin berbasis Java yang rusak lambat karena alasan politis.

Dalam kebanyakan kasus percabangan buruk, dan dilakukan oleh orang-orang yang iri atau orang-orang dari perusahaan egois yang memiliki rencana yang tidak dibagi dengan komunitas asli dan tidak sejalan dengan itu (mis. Canonical ) dan contohnya adalah libav / avconv (yang merupakan cabang dari FFMPEG), dalam kasus-kasus tersebut komunitas asli memiliki kualitas, keamanan , dan mereka menyambut patch yang selaras dengan rencana komunitas.

Dan Walsh mencatat definisi lama dari garpu

Saya telah berada di sumber terbuka untuk waktu yang lama, dan definisi saya tentang "garpu" mungkin tanggal. Saya menganggap "garpu" sebagai tindakan bermusuhan yang dilakukan oleh satu kelompok untuk membuat orang lain menggunakan dan berkontribusi pada versi mereka dari proyek hulu dan mengabaikan versi "asli". Misalnya, LibreOffice memotong OpenOffice atau kembali Xorg memotong Xfree86.

Kemudian dia membandingkannya dengan garpu github

Saat ini, GitHub telah mengubah artinya. Ketika repositori perangkat lunak ada di GitHub atau platform serupa, setiap orang yang ingin berkontribusi harus menekan tombol "garpu", dan mulai membangun tambalan mereka. Pada tulisan ini, Docker di GitHub memiliki 9.860 garpu, termasuk garpu kami. Namun, dengan definisi ini, semua paket yang didistribusikan oleh distribusi yang menyertakan tambalan adalah garpu. Red Hat mengirimkan Linux Kernel, dan saya belum pernah mendengar ini disebut sebagai garpu. Tapi itu akan dianggap sebagai "garpu" jika Anda mempertimbangkan proyek hulu yang dikirim dengan patch garpu.

Muayyad Alsadi
sumber
1

Semua tanggapan yang mengatakan bahwa ini kolaboratif menimbulkan pertanyaan: mengapa tidak mengatakan " Klon saya di GitHib" atau "Unduh .zip dari GitHub"?

Pada GitHub Anda dapat melihat hitungan jumlah garpu. Tapi, setahu saya, bukan hitungan jumlah klon atau unduhan zip.

Jadi, saya katakan itu sebagian untuk mendorong kolaborasi, sebagian untuk mendapatkan umpan balik dan validasi bahwa orang menggunakan kode Anda.

PS Saya cukup baru untuk GitHub jadi jika ini benar-benar salah dari dasar silakan beri tahu saya.

pengguna949300
sumber
Bukankah lebih sederhana untuk hanya mengatakan, "begitulah cara kerja kontrol versi terdistribusi, dengan menarik permintaan, yang tentu saja mengharuskan saya terlebih dahulu membayar repo Anda, kemudian komit ke garpu saya, kemudian mengeluarkan permintaan tarik jika saya membangun sesuatu yang layak dibagikan dengan proyek aslinya "
Warren P
1
Harus mengakui bahwa saya benar-benar tidak "mendapatkan" git. Mengapa tidak mengkloning atau mendapatkan file zip saja, dan, jika saya melakukan perubahan, atur VCS apa pun yang saya inginkan? Dalam kasus yang jarang terjadi, saya membuat perubahan bermanfaat bermanfaat bagi semua orang, saya bisa menggunakan email, atau melakukan fork saat itu.
user949300
Jawaban ini kontradiktif dengan diri sendiri. Anda dengan tepat menyarankan agar mereka mencoba mendorong kolaborasi. Maksud dari tautan semacam itu bukanlah untuk memberi orang tempat mengunduh proyek Anda, intinya adalah untuk membuat mereka terlibat dalam pengembangannya. Mereka dapat mengunduh zip atau mengkloningnya jika mereka hanya ingin salinan untuk diri mereka sendiri, tetapi jika mereka ingin salinannya memiliki jalur yang ditetapkan untuk berkontribusi kembali ke proyek hulu yang dilakukan melalui memiliki garpu yang hulu dapat menarik kontribusi Anda di dari.
Caleb
@ user949300, Anda masih bisa menggunakan git clone https://github.com/$NAME_OF_GITHUB_USER/$NAME_OF_REPOSITORY.gitdan kemudian git format-patch mastermengirim melalui Email atau sejenisnya
Sebastian Godelet
0

forking on github membuatnya terdengar sangat mudah untuk dikatakan seperti ikuti saya di twitter. Saya membawa sedikit sosialisasi ke dunia pembangunan dari perspektif saya sendiri juga membuatnya jelas bahwa itu open source dan tersedia untuk modifikasi. Saya juga berpikir itu adalah konsep yang bagus dengan spanduk "fork me on github" di salah satu ujung Anda situs web proyek

Joseph Rex
sumber
Um Tidak. Untuk itu ada 'bintang' dan 'tonton' untuk repo serta 'ikuti' untuk pengguna. Maksud dari garpu adalah untuk mendorong jenis tindakan tertentu - mengirimkan kontribusi ke hulu - tidak hanya membuatnya sosial.
Caleb
0

Anda mungkin sebaiknya mengambil jawaban yang paling sederhana: mereka ingin Anda tahu kode tersedia secara gratis di GitHub. Saya pikir hipotesis Anda agak dipikirkan.

ashgromnies
sumber
Ini adalah jawaban paling sederhana yang benar-benar masuk akal.
Woland