Git Clone Branch - Cara Mengkloning Cabang Tertentu

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 mastercabang 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 mastercabang produksi .

Percabangan adalah konsep inti di Git yang juga digunakan di GitHub untuk mengelola alur kerja versi berbeda dari satu proyek. The mastercabang selalu cabang default dalam repositori yang paling sering dianggap "produksi dan kode deployable". Cabang baru suka passwordless-authatau refactor-signup-uxbisa dibuat dari mastercabang tersebut.

Cara Mengkloning Cabang Git

Meskipun Anda dapat mengkloning repositori dengan git cloneperintah, perlu diingat bahwa ini mengkloning cabang dan remote HEAD. Ini biasanya mastersecara default dan menyertakan semua cabang lain di repositori.

Jadi, saat Anda mengkloning repositori, Anda mengkloning masterdan 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-authcabang.

Anda benar-benar tidak membutuhkan mastercabang karena "cabang fitur" Anda akan digabungkan menjadi mastersesudahnya. Lalu bagaimana Anda mengkloning passwordless-authcabang 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/apidipetakan 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 mastercabang memegang file halaman / api / hello.js sementara passwordless-authmemegang file halaman / api / auth.js . Setiap file hanya mengembalikan respons teks tiruan. Lihat mastertanggapan 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 masterke komputer Anda, itu remotes/origin/masteradalah mastercabang asli di internet, dan masterdi 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 pushdan 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-authsebagai 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-branchopsi 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-authsebagai cabang lokal dan hanya melacak cabang ini.

Jika Anda menjalankan cd pages/apiAnda akan menemukan auth.jsfile di passwordless-authcabang 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? ✌?