Tidak seperti sistem kontrol versi terpusat yang lebih lama seperti SVN dan CVS, Git didistribusikan. Setiap pengembang memiliki riwayat dan kontrol penuh atas kode mereka secara lokal atau jarak jauh. Mereka juga dapat mengakses atau memanipulasi beberapa bagian kode yang dianggap sesuai dari lokasi yang berbeda.
Sejak Linus Torvalds (pembuat kernel sistem operasi Linux yang terkenal) membuat Git pada tahun 2005 untuk pengembangan kernel Linux, Git telah menjadi sistem kontrol versi modern yang paling banyak digunakan di dunia.
Pada artikel ini, saya akan memperkenalkan Anda pada alur kerja klon Git dan cabang Git dan saya akan menunjukkan kepada Anda bagaimana Anda dapat mengkloning cabang tertentu berdasarkan kebutuhan Anda. Mari kita mulai! ?
Prasyarat
- Pengetahuan dasar tentang terminal
- Kemampuan untuk mengetik perintah di terminal
- Git diinstal (saya masih akan menunjukkan caranya)
- Akun GitHub
- Senyuman di wajahmu (Taruh senyuman itu?)
Pengantar Singkat Git dan GitHub
Menurut Wikipedia,
Git adalah sistem kontrol versi terdistribusi yang dirancang untuk melacak perubahan proyek (kode) dalam pengembangan perangkat lunak. Ini dimaksudkan untuk menegakkan koordinasi, kolaborasi, kecepatan, dan efisiensi di antara pengembang.GitHub, di sisi lain, adalah layanan hosting berbasis web untuk kontrol versi menggunakan Git. Ia menawarkan semua kontrol versi terdistribusi dan fungsi manajemen kode sumber dari Git serta menambahkan lebih banyak fitur untuk kode komputer.
Cara Menginstal Git di Windows
Unduh dan instal Penginstal Git untuk Windows terbaru di sini.
Cara Menginstal Git di Linux
Berikut adalah perintah berdasarkan distro Linux Anda:
Debian atau Ubuntu
sudo apt-get update sudo apt-get install git
Fedora
sudo dnf install git
CentOS
sudo yum install git
Arch Linux
sudo pacman -Sy git
Gentoo
sudo emerge --ask --verbose dev-vcs/git
Cara Menginstal Git di Mac
Unduh dan instal penginstal Git untuk Mac terbaru di sini.
Atau Anda bisa mengetik perintah ini:
brew install git
Sekarang kita telah menginstal Git, mari kita lanjutkan ke tutorial.
Pengantar Git Clone
Git memungkinkan Anda untuk mengelola dan membuat versi proyek Anda dalam "repositori". Repositori ini disimpan di layanan hosting berbasis web untuk kontrol versi, seperti GitHub.
Anda kemudian dapat mengkloning repositori ini ke mesin lokal Anda dan memiliki semua file dan cabang secara lokal (saya akan menjelaskan lebih lanjut tentang cabang segera).

Misalnya, Anda dapat mengkloning repositori freeCodeCamp dengan SSH seperti ini:
git clone [email protected]:freeCodeCamp/freeCodeCamp.git
Pengantar Cabang Git
Saat mengerjakan sebuah proyek, Anda kemungkinan akan memiliki fitur yang berbeda. Dan banyak kontributor akan mengerjakan proyek ini dan fitur-fiturnya.
Cabang memungkinkan Anda membuat "taman bermain" dengan file yang sama di master
cabang tersebut. Anda dapat menggunakan cabang ini untuk membuat fitur independen, menguji fitur baru, membuat perubahan yang melanggar, membuat perbaikan, menulis dokumen atau mencoba ide tanpa merusak atau memengaruhi kode produksi. Setelah selesai, Anda menggabungkan cabang tersebut menjadi master
cabang produksi .
Percabangan adalah konsep inti di Git yang juga digunakan di GitHub untuk mengelola alur kerja versi berbeda dari satu proyek. The master
cabang selalu cabang default dalam repositori yang paling sering dianggap "produksi dan kode deployable". Cabang baru suka passwordless-auth
atau refactor-signup-ux
bisa dibuat dari master
cabang tersebut.

Cara Mengkloning Cabang Git
Meskipun Anda dapat mengkloning repositori dengan git clone
perintah, perlu diingat bahwa ini mengkloning cabang dan remote HEAD
. Ini biasanya master
secara default dan menyertakan semua cabang lain di repositori.
Jadi, saat Anda mengkloning repositori, Anda mengkloning master
dan semua cabang lainnya. Ini berarti Anda harus membayar sendiri cabang lain.
Katakanlah tugas Anda pada sebuah proyek adalah mengerjakan fitur untuk menambahkan otentikasi tanpa kata sandi ke dasbor pengguna. Dan fitur ini ada di passwordless-auth
cabang.
Anda benar-benar tidak membutuhkan master
cabang karena "cabang fitur" Anda akan digabungkan menjadi master
sesudahnya. Lalu bagaimana Anda mengkloning passwordless-auth
cabang ini tanpa mengambil semua cabang lain dengan "sekumpulan file yang tidak Anda perlukan"?
Saya membuat repositori sampel ini untuk menjelaskan hal ini. Repositori ini menampung blog sederhana yang dibangun dengan Nextjs dan memiliki empat cabang tiruan:
- menguasai
- dev
- pementasan
- passwordless-auth
Di Nextjs, file apa pun di dalam folder pages/api
dipetakan ke /api/*
jalur dan akan diperlakukan sebagai titik akhir API, bukan sebagai page
. Di repositori kami, saya telah membuat API dummy yang berbeda di direktori ini untuk membuat setiap cabang berbeda.
The master
cabang memegang file halaman / api / hello.js sementara passwordless-auth
memegang file halaman / api / auth.js . Setiap file hanya mengembalikan respons teks tiruan. Lihat master
tanggapan hello API di sini (dengan pesan khusus untuk Anda?).
Mari kita menggandakan repositori:
git clone [email protected]:BolajiAyodeji/nextjs-blog.git
Ini memberi kami akses ke semua cabang di repositori ini dan Anda dapat dengan mudah beralih di antara masing-masing untuk melihat setiap versi dan file-nya.
git branch -a

Ingin tahu dari mana asal remote / origin / ..cabang?
Saat Anda menggandakan repositori, Anda menarik data dari repositori di internet atau server internal yang dikenal sebagai remote . Kata asal adalah alias yang dibuat oleh Git Anda untuk menggantikan URL jarak jauh (Anda dapat mengubah atau menentukan alias lain jika Anda mau).
Ini remote / asal / .. cabang mengarahkan Anda kembali ke repositori asal Anda kloning dari internet sehingga Anda masih bisa melakukan tarik / dorong dari asal.

Jadi, ketika Anda mengkloning master
ke komputer Anda, itu remotes/origin/master
adalah master
cabang asli di internet, dan master
di mesin lokal Anda. Jadi Anda akan menarik / mendorong dari dan ke remotes/origin/master
.
Singkatnya, Remote adalah URL yang mengarahkan Anda ke repositori di internet sementara Origin adalah alias untuk URL jarak jauh ini.

Cara Mengkloning Cabang Tertentu
Sekarang mari kita mengkloning cabang tertentu dari repositori demo kita. Ada dua cara untuk mengkloning cabang tertentu. Anda bisa:
- Gandakan repositori, ambil semua cabang, dan segera lakukan pembayaran ke cabang tertentu.
- Gandakan repositori dan ambil hanya satu cabang.
Opsi Satu
git clone --branch
atau
git clone -b
Dengan ini, Anda mengambil semua cabang di repositori, checkout ke yang Anda tentukan, dan cabang tertentu menjadi cabang lokal yang dikonfigurasi untuk git push
dan git pull
. Tapi Anda masih mengambil semua file dari setiap cabang. Ini mungkin bukan yang Anda inginkan, bukan? ?
Mari kita uji:
git clone -b passwordless-auth [email protected]:BolajiAyodeji/nextjs-blog.git
Ini secara otomatis mengkonfigurasi passwordless-auth
sebagai cabang lokal tetapi masih melacak cabang lain.


Opsi Dua
git clone --branch --single-branch
atau
git clone -b --single-branch
Ini melakukan tindakan yang sama seperti opsi satu, kecuali bahwa --single-branch
opsi tersebut diperkenalkan di Git versi 1.7.10 dan yang lebih baru. Ini memungkinkan Anda untuk hanya mengambil file dari cabang tertentu tanpa mengambil cabang lain.
Mari kita uji:
git clone -b passwordless-auth --single-branch [email protected]:BolajiAyodeji/nextjs-blog.git
Ini secara otomatis mengkonfigurasi passwordless-auth
sebagai cabang lokal dan hanya melacak cabang ini.


Jika Anda menjalankan cd pages/api
Anda akan menemukan auth.js
file di passwordless-auth
cabang seperti yang diharapkan dari pengaturan sebelumnya.
Kesimpulan
Anda mungkin kehabisan internet atau ruang penyimpanan tetapi Anda perlu mengerjakan tugas di cabang tertentu. Atau Anda mungkin ingin mengkloning cabang tertentu dengan file terbatas karena berbagai alasan. Untungnya, Git memberi Anda fleksibilitas untuk melakukan ini. Lenturkan otot Anda dan cobalah, masih banyak lagi "Git" untuk dipelajari.
Satu per satu, ya? ✌?