Proyek Java sumber terbuka: GitHub

Jika Anda penasaran tentang GitHub, maka tutorial singkat dalam seri proyek Java Open source ini cocok untuk Anda. Dapatkan gambaran umum dari repositori kode sumber yang telah mengubah cara banyak pengembang bekerja, baik secara individu maupun kolaboratif. Kemudian coba GitHub sendiri, menggunakan perintah Git umum untuk membuat cabang dan menjalankan proyek open source Anda sendiri.

GitHub adalah situs web pengkodean sosial dan layanan hosting kode sumber yang menggunakan Git sebagai sistem kontrol versinya. Diluncurkan pada tahun 2008, GitHub telah menawarkan hampir 1,7 juta orang yang menghosting hampir 3 juta repositori. Seperti kebanyakan jejaring sosial, GitHub memungkinkan pengguna membuat dan mengikuti umpan yang terkait dengan proyek masing-masing. Ini juga memperluas paradigma sosial untuk menyertakan grafik jaringan yang menunjukkan penggunaan repositori. Anda dapat menganggap GitHub sebagai jejaring sosial, ala Facebook, tetapi hanya untuk pengembang perangkat lunak.

Menyatukan elemen sosial dengan repositori gratis untuk menjadi tuan rumah proyek open source, GitHub bertujuan untuk mengembangkan komunitas yang mendukung dan aktif demi kemajuan industri perangkat lunak. Semakin aktif suatu proyek, semakin banyak orang akan menemukannya, dan semoga berkontribusi padanya. GitHub juga menawarkan dukungan proyek komersial dengan biaya nominal.

Selain proyek berikut, GitHub memungkinkan pengguna untuk mengikuti pengembang perangkat lunak individu. Hal ini memudahkan untuk mengikuti apa yang dilakukan teman dan kolega dan meninjau kode mereka, serta mencari pemrogram terkenal dan mengikuti pekerjaan mereka. Umpan yang diperbarui secara rutin menyajikan kesempatan untuk melihat seseorang mempraktikkan keahliannya. Bagi pengembang, ada banyak hal yang dapat dipelajari dari mempelajari kode dan metodologi satu sama lain; misalnya, dapat melihat kode apa yang didorong oleh pengembang lain ke proyek mereka, dan kapan, adalah cara yang bagus untuk belajar pada tingkat tinggi tentang siklus pengembangan rilis.

Ikuti ceritanya di JavaWorld

  • Mengapa pengembang memilih Git untuk kontrol versi
  • Saat bercabang menjadi norma, bersiaplah untuk GitHub
  • GitHub mendapat investasi $ 100 juta

Pengkodean sosial dengan GitHub memungkinkan pengembang untuk belajar dari satu sama lain dengan cara baru sambil menyimpan dan memperbarui kode menggunakan sistem kontrol versi yang populer dan berfitur baik. Dalam proyek Open source Java edisi ini, saya akan membantu Anda memulai dengan GitHub. Pertama saya akan memberikan gambaran umum tentang platform, kemudian memperkenalkan beberapa dasar Git, termasuk opsi baris perintah yang sering Anda gunakan di GitHub. Akhirnya, saya akan membahas sebuah diff-to- commitcontoh sederhana yang mendemonstrasikan kekuatan sehari-hari dari repositori kode terdistribusi ini.

Mulailah dengan GitHub

Akun GitHub memiliki beberapa jenis, dikelompokkan berdasarkan akun individu atau komersial dan oleh repositori publik atau pribadi. Pengembang open source diperbolehkan menyimpan repositori publik tanpa batas, atau dengan sedikit biaya dapat memilih untuk menjadi tuan rumah antara lima dan 20 repositori pribadi. Pengembang komersial membayar lebih banyak (sekitar dua kali lebih banyak dari pengembang open source saat tulisan ini dibuat) dan dapat meningkatkan hingga 125 repositori pribadi. Lihat beranda GitHub untuk daftar lengkap paket dan harga.

Anda akan membutuhkan akun GitHub untuk mengikuti artikel ini. Buka situs GitHub dan klik link Signup and Pricing di bagian atas halaman. Klik "Buat akun gratis" dan selesaikan proses pembuatan akun.

Jika Anda menginginkan instruksi pengaturan untuk sistem operasi Anda, lihat tutorial GitHub. Perhatikan bahwa proses penginstalan secara otomatis menginstal klien GUI dan meminta Anda untuk menginstal alat baris perintah GitHub secara manual. Saya menyarankan Anda mengambil opsi ini jika Anda ingin melakukan sesuatu dengan cepat pada baris perintah.

Git: Primer

Anda setidaknya harus cukup familiar dengan Git agar dapat menggunakan GitHub secara efektif. Hal yang menarik bagi kebanyakan geek adalah Git dirancang dan dikembangkan oleh Linus Torvalds, pendiri Linux. Di bagian ini saya memberikan gambaran umum tentang Git dan menjelaskan cara kerjanya. Menjelang akhir artikel saya menyajikan ulasan dari beberapa perintah yang lebih populer untuk membantu Anda menjadi produktif dengan cepat. Ini sama sekali bukan tutorial yang lengkap tetapi ini akan membantu Anda memulai.

Ketika pengembang perangkat lunak memikirkan tentang sistem kontrol versi (VCS), kita cenderung memikirkan repositori pusat yang akan kita gunakan untuk mengunduh kode sumber, membuat perubahan secara lokal, dan kemudian mengirimkan perubahan tersebut kembali ke repositori pusat. Git sedikit berbeda. Ini adalah sistem kontrol versi terdistribusi , yang berarti bahwa ini sebenarnya bukan repositori pusat melainkan beberapa klon dari repositori. Jadi "master repositori" ada di suatu tempat (seperti di GitHub) tetapi kami bekerja secara lokal di repositori kloning.

Arsitektur terdistribusi Git memberikan keuntungan yang signifikan dibandingkan sistem kontrol versi yang tidak terdistribusi dimana pengembang dapat secara lokal check-in dan check-out kode, membuat cabang, dan banyak lagi. Untuk perubahan besar dalam VCS tradisional Anda akan membuat cabang pribadi dan memeriksa kode ke cabang itu. Ketika Anda selesai dengan perubahan Anda, Anda akan menggabungkan cabang itu ke cabang utama.

Kontrol versi terdistribusi

Git mengubah paradigma VC karena Anda dapat bekerja secara lokal dan menggabungkan semua perubahan Anda dalam satu komit (Anda dapat menyimpan riwayat lokal saat Anda menggabungkan atau Anda dapat menggabungkan semua perubahan menjadi satu check-in). Jadi repositori pusat tidak dikotori dengan cabang dan puluhan catatan sejarah, tetapi hanya informasi tentang perubahan fitur yang telah dilakukan. Intinya, Git menggunakan cabang seperti yang dimaksudkan: untuk mengembangkan set fitur baru, untuk mempertahankan rilis, atau untuk memperbaiki bug yang terkait dengan rilis.

Saat Anda menginstal Git di komputer lokal dan "menggandakan" repositori, Anda menerima seluruh repositori, termasuk informasi historis tentang semua kode sumber dalam proyek. Anda kemudian bekerja melawan repositori lokal Anda, menambahkan file baru, menghapus file, dan mengubah file dalam lingkungan pementasan sampai Anda benar-benar memasukkannya ke repositori lokal. Git menyimpan informasi pembuatan versi tentang semua perubahan Anda dan Anda dapat dengan mudah memutar kembali ke titik mana pun dalam riwayat Anda. Terakhir, saat Anda siap, Anda dapat menyinkronkan repositori lokal Anda dengan yang jauh.

Perubahan disinkronkan ke repositori jarak jauh melalui push sementara perubahan dalam repositori jarak jauh disinkronkan dengan repositori lokal Anda melalui tarikan . Karena Anda memiliki tiruan penuh dari repositori secara lokal, Anda tidak terbatas hanya bekerja pada cabang utama repositori itu. Anda dapat membuat cabang untuk menampung perubahan Anda dan kemudian mendorong atau menariknya sebagaimana mestinya.

Lihat Sumberdaya jika Anda membutuhkan tutorial pengenalan Git yang lebih lengkap. Saya akan fokus pada GitHub untuk sisa artikel ini.

Pengkodean sosial dengan GitHub

Setelah Anda membuat akun GitHub, Anda dapat mulai mengikuti pekerjaan pengembang perangkat lunak lain atau menonton proyek yang Anda minati. Anda dapat menemukan orang atau proyek untuk diikuti dengan mencarinya secara langsung; atau, jika Anda sedang mencari ide, Anda dapat menggunakan fungsi "Jelajahi" GitHub untuk menemukan proyek berdasarkan minat Anda. Jelajahi GitHub menampilkan repositori yang sedang tren serta yang unggulan. Selain itu, Anda dapat menjelajahi semua repositori dengan mengklik tombol "Repositori" pada toolbar. Jika Anda ingin mencari proyek yang dikodekan dalam bahasa pemrograman tertentu, Anda dapat mengklik "Bahasa" pada toolbar, lalu pilih bahasa yang ingin Anda jelajahi. Gambar 1 menunjukkan repositori Java yang paling banyak ditonton (yaitu, sedang tren) pada saat penulisan ini.

Storm adalah repositori Java yang paling banyak ditonton di GitHub saat saya memeriksanya. Setelah Anda menemukan proyek yang Anda minati, klik di atasnya dan Anda akan melihat opsi "Tonton", seperti yang ditunjukkan pada Gambar 2.

Jika Anda mengklik "Tonton", Anda akan berlangganan untuk mengikuti proyek dan dapat melihat perubahan yang dilakukan di beranda GitHub Anda. Gambar 3 menunjukkan beranda GitHub saya, yang berisi daftar pembaruan untuk berbagai proyek Musim Semi.

Mengikuti pengembang individu bekerja dengan cara yang sama seperti mengikuti proyek. Misalnya, saya baru-baru ini memutuskan untuk mengikuti teman saya Tom Akehurst, seperti yang ditunjukkan pada 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 mengunggah semua perubahan yang dilakukan ke server yang ditentukan. Dalam hal ini saya telah mendorong komit awal yang berisi direktori pom.xmldan srcke server asal, yang sebelumnya saya setel.

Anda dapat menggunakan Git dari IDE Anda atau dari baris perintah; Saya hanya kebetulan menjadi pecandu baris perintah. Menjalankan git helpmenunjukkan perintah yang paling umum, yang dirangkum dalam Kode 2.