Projek Java sumber terbuka: GitHub

Sekiranya anda ingin tahu mengenai GitHub maka tutorial ringkas ini dalam siri projek Open source Java adalah untuk anda. Dapatkan gambaran keseluruhan repositori kod sumber yang telah mengubah cara kerja banyak pembangun, baik secara individu dan kolaboratif. Kemudian cuba GitHub untuk diri sendiri, menggunakan perintah Git biasa untuk mencabut dan melaksanakan projek sumber terbuka anda sendiri.

GitHub adalah laman web pengekodan sosial dan perkhidmatan hosting kod sumber yang menggunakan Git sebagai sistem kawalan versi. Dilancarkan pada tahun 2008, GitHub sudah mempunyai hampir 1,7 juta orang yang menampung hampir 3 juta repositori. Seperti kebanyakan rangkaian sosial, GitHub membolehkan pengguna membuat dan mengikuti suapan yang berkaitan dengan projek masing-masing. Ini juga memperluas paradigma sosial untuk memasukkan grafik rangkaian yang menunjukkan penggunaan repositori. Anda boleh berfikir tentang GitHub sebagai rangkaian sosial, a la Facebook, tetapi hanya untuk pemaju perisian.

Menggabungkan elemen sosial dengan repositori percuma untuk menjadi tuan rumah projek sumber terbuka, GitHub bertujuan untuk memupuk komuniti yang menyokong dan aktif untuk kemajuan industri perisian. Semakin aktif projek, semakin ramai orang akan menemuinya, dan diharapkan dapat menyumbang kepadanya. GitHub juga menawarkan sokongan projek komersial dengan kos nominal.

Selain mengikuti projek, GitHub membolehkan pengguna mengikuti individu pembangun perisian. Ini memudahkan anda mengikuti apa yang dilakukan oleh rakan dan rakan sekerja dan mengkaji kod mereka, serta mencari pengaturcara terkenal dan mengikuti pekerjaan mereka. Suapan yang dikemas kini secara berkala memberi peluang untuk menyaksikan seseorang berlatih kerajinannya. Bagi pembangun, banyak yang perlu dipelajari daripada mempelajari kod dan metodologi masing-masing; sebagai contoh, dapat melihat kod apa yang dimajukan oleh pemaju lain untuk projek mereka, dan kapan, adalah cara yang baik untuk belajar pada tahap tinggi mengenai kitaran pengembangan pelepasan.

Ikuti kisah di JavaWorld

  • Mengapa pembangun memilih Git untuk kawalan versi
  • Apabila forking menjadi kebiasaan, bersiaplah untuk GitHub
  • GitHub mendapat pelaburan $ 100 juta

Pengekodan sosial dengan GitHub membolehkan pembangun belajar antara satu sama lain dengan cara baru sambil menyimpan dan mengemas kini kod menggunakan sistem kawalan versi yang terkenal dan terkenal. Dalam edisi projek Java sumber terbuka ini, saya akan membantu anda memulakan GitHub. Mula-mula saya akan memberikan gambaran keseluruhan platform, kemudian memperkenalkan beberapa asas Git, termasuk pilihan baris perintah yang sering anda gunakan di GitHub. Akhir sekali, saya akan berjalan melalui mudah diff-to- commitcontoh yang menunjukkan kuasa setiap hari ini repositori kod diedarkan.

Mulakan dengan GitHub

Akaun GitHub terdapat dalam beberapa pilihan, dikelompokkan berdasarkan akaun individu atau komersial dan oleh repositori awam atau swasta. Pembangun sumber terbuka dibenarkan repositori awam tanpa had, atau dengan sedikit bayaran boleh memilih untuk menjadi tuan rumah antara lima hingga 20 repositori swasta. Pembangun komersil membayar lebih banyak (kira-kira dua kali ganda daripada pembangun sumber terbuka daripada penulisan ini) dan boleh meningkatkan sehingga 125 repositori peribadi. Lihat laman utama GitHub untuk senarai lengkap rancangan dan harga.

Anda memerlukan akaun GitHub untuk mengikuti artikel ini. Pergi ke laman web GitHub dan klik pada pautan Pendaftaran dan Harga di bahagian atas halaman. Klik "Buat akaun percuma" dan selesaikan proses pembuatan akaun.

Sekiranya anda mahukan arahan persediaan untuk sistem operasi anda, lihat tutorial GitHub. Perhatikan bahawa proses pemasangan secara automatik memasang klien GUI dan meminta anda memasang alat baris perintah GitHub secara manual. Saya mengesyorkan agar anda mengambil pilihan ini sekiranya anda ingin melakukan sesuatu dengan cepat di baris arahan.

Git: buku asas

Anda mesti sekurang-kurangnya mengenali Git agar dapat menggunakan GitHub dengan berkesan. Tempat menarik bagi kebanyakan geeks adalah bahawa Git dirancang dan dikembangkan oleh Linus Torvalds, pengasas Linux. Dalam bahagian ini saya memberikan gambaran keseluruhan Git dan menerangkan bagaimana ia berfungsi. Menjelang akhir artikel saya mengemukakan ulasan mengenai beberapa arahan yang lebih popular untuk membantu anda menjadi produktif dengan cepat. Ini tidak semestinya tutorial lengkap tetapi akan membantu anda memulakannya.

Apabila pembangun perisian memikirkan sistem kawalan versi (VCS), kita cenderung memikirkan repositori pusat yang akan kita gunakan untuk memuat turun kod sumber, membuat perubahan secara tempatan, dan kemudian menyerahkan perubahan tersebut kembali ke repositori pusat. Git sedikit berbeza. Ini adalah sistem kawalan versi terdistribusi , yang bermaksud bahawa ia sebenarnya bukan repositori pusat tetapi lebih banyak klon repositori. Jadi "repositori induk" wujud di suatu tempat (seperti di GitHub) tetapi kami bekerja secara tempatan di repositori klon.

Senibina yang diedarkan Git memberikan manfaat yang besar berbanding sistem kawalan versi yang tidak diedarkan kerana pembangun dapat kod daftar masuk dan daftar keluar tempatan, membuat cawangan, dan banyak lagi. Untuk perubahan besar dalam VCS tradisional, anda akan membuat cawangan peribadi dan menyemak kod ke cawangan itu. Apabila anda selesai dengan perubahan anda, anda akan menggabungkan cabang itu ke cabang utama.

Kawalan versi yang diedarkan

Git mengubah paradigma VC kerana anda boleh bekerja secara tempatan dan menggabungkan semua perubahan anda dalam satu komitmen (anda dapat menyimpan sejarah tempatan anda ketika anda bergabung atau anda boleh menggabungkan semua perubahan menjadi satu daftar masuk). Oleh itu, repositori pusat tidak dipenuhi dengan cabang dan puluhan catatan sejarah, tetapi hanya maklumat mengenai perubahan ciri yang telah dibuat. Pada dasarnya, Git menggunakan cabang seperti yang dimaksudkan: untuk mengembangkan set fitur baru, untuk mempertahankan pelepasan, atau untuk memperbaiki bug yang terkait dengan rilis.

Apabila anda memasang Git pada mesin tempatan anda dan "mengklon" repositori, anda akan menerima keseluruhan repositori, termasuk maklumat sejarah mengenai semua kod sumber dalam projek tersebut. Anda kemudian bekerja dengan repositori tempatan anda, menambahkan fail baru, membuang fail, dan menukar fail dalam lingkungan pementasan sehingga anda benar-benar mengikatnya ke repositori tempatan. Git mengekalkan maklumat versi mengenai semua perubahan anda dan anda boleh kembali ke titik sejarah anda dengan mudah. Akhirnya, apabila anda sudah bersedia, anda boleh menyegerakkan repositori tempatan anda dengan yang jauh.

Perubahan diselaraskan ke repositori jauh melalui push sementara perubahan di repositori jauh diselaraskan dengan repositori tempatan anda melalui tarikan . Oleh kerana anda mempunyai klon penuh repositori secara tempatan, anda tidak terhad hanya bekerja dengan cabang utama repositori itu. Anda boleh membuat cawangan untuk menahan perubahan anda dan kemudian mendorong atau menariknya sesuai.

Lihat Sumber jika anda memerlukan pengenalan tutorial yang lebih lengkap untuk Git. Saya akan memberi tumpuan kepada GitHub untuk baki artikel ini.

Pengekodan sosial dengan GitHub

Selepas anda membuat akaun GitHub, anda boleh mula mengikuti kerja pembangun perisian lain atau menonton projek yang menarik minat anda. Anda boleh mencari orang atau projek untuk diikuti dengan mencarinya secara langsung; atau, jika anda mencari idea, anda boleh menggunakan fungsi "Explore" GitHub untuk mencari projek berdasarkan minat anda. Jelajah GitHub memaparkan repositori yang sedang tren dan juga yang dipaparkan. Di samping itu, anda boleh menjelajahi semua repositori dengan mengklik butang "Repositori" pada bar alat. Sekiranya anda ingin mencari projek yang dikodkan dalam bahasa pengaturcaraan tertentu, anda boleh mengklik "Bahasa" pada bar alat, kemudian pilih bahasa yang ingin anda terokai. Gambar 1 menunjukkan repositori Java yang paling banyak ditonton (iaitu, sedang tren) pada masa penulisan ini.

Storm adalah repositori Java yang paling banyak ditonton di GitHub pada masa saya memeriksa. Sebaik sahaja anda menjumpai projek yang anda minati, klik padanya dan anda akan melihat pilihan "Tonton", seperti yang ditunjukkan dalam Gambar 2.

Sekiranya anda mengklik "Tonton" maka anda akan dilanggan untuk mengikuti projek tersebut dan dapat melihat perubahan yang dibuat di laman utama GitHub anda. Gambar 3 menunjukkan laman utama GitHub saya, yang mengandungi senarai kemas kini untuk pelbagai projek Spring.

Mengikuti individu pembangun berfungsi dengan cara yang sama seperti mengikuti projek. Sebagai contoh, saya baru-baru ini memutuskan untuk mengikuti rakan saya Tom Akehurst, seperti yang ditunjukkan dalam Gambar 4.

From a social perspective, GitHub empowers you to easily find developers and projects that you might be interested in and receive updates about them. Of course, the flip side is also true: GitHub is an excellent place to show off your work and get feedback and recognition from your peers.

Using GitHub for project updates and maintenance

Remember that the main driver behind GitHub is to promote the development of open source software projects. So if you've built something good, why not contribute your code to GitHub and make it freely available to the world?

You can create a new repository from the GitHub website or from the client application on your desktop. In this section we'll first walk through creating a repository from the website, then I'll show you how to update and commit a file via the command-line.

Setting up a GitHub repository

Assuming that you have an account set up, log in and you'll see something similar to what's shown in Figure 5. Click "Create a Repository" and you'll be guided through the process. First, you'll click on the first item in your top-right toolbar, "Create a New Repo."

Click that link and give your repository a name and description. I created a new repository to host my GeekCap utilities, which is a set of helper classes that include sorting algorithms and a re-sortable list, a class that easily extracts icons from the Java Look-and-Feel Graphics Repository, ZIP utilities, and more. While not the coolest project, I included it because most of my other projects use one or more of these utilities, so it's good to have them stored in an accessible place. I named my project geek-util and gave it a description: "Geekcap Utilities: helpful classes that are used by other Geekcap.com projects."

Once your project is set up you should see a screen like the one shown the Figure 6.

Figure 6. Repository created (click to enlarge)

The screenshot in Figure 6 shows a listing of what you can do with your new repository, as well as an example of creating a README file and pushing it into your repository. I have an existing Maven project that I need to add for the first time, so I start by adding my pom.xml file and my src directory. Below are the Git commands that I entered for the initial push of the project into the repository:

Listing 1. Git commands for creating a repository

git init git add src git add pom.xml git commit -m 'Initial commit' git remote add origin //github.com/geekcap/geek-util.git git push -u origin master

Here's where familiarity with Git is important if you want to use GitHub. Fortunately, the main Git commands are relatively intuitive:

  • git init creates an empty Git repository. Specifically, this creates the .git directory, which the git command will recognize as a repository.
  • git add adds files to the repository; in this case I added my pom.xml and my src directory.
  • git commit commits changes to the repository. All I did was to add the pom.xml file and src directory. You would also use this command after modifying the contents of a file or deleting files via the git rm command.
  • git remote add origin adds the specified URL as the origin server for the Git repository. As you saw in Figure 6, the origin server is created on GitHub for you and the URL is provided in the setup documentation.
  • git push memuat naik semua perubahan yang dilakukan ke pelayan yang ditentukan. Dalam kes ini saya telah mendorong komit awal yang berisi pom.xmldan srcdirektori ke server asal, yang sebelumnya saya tetapkan.

Anda boleh menggunakan Git dari IDE anda atau dari baris arahan; Saya kebetulan menjadi pecandu baris perintah. Pelaksanaan git helpmenunjukkan perintah yang paling umum, yang diringkaskan dalam Penyenaraian 2.