Tidak seperti sistem kawalan versi terpusat seperti SVN dan CVS, Git diedarkan. Setiap pembangun mempunyai sejarah dan kawalan penuh kod mereka secara tempatan atau jarak jauh. Mereka juga dapat mengakses atau memanipulasi beberapa bahagian kod yang difikirkan sesuai dari lokasi yang berbeza.
Sejak Linus Torvalds (pencipta kernel sistem operasi Linux yang terkenal) membuat Git pada tahun 2005 untuk pengembangan kernel Linux, ia telah menjadi sistem kawalan versi moden yang paling banyak digunakan di dunia.
Dalam artikel ini, saya akan memperkenalkan anda kepada aliran kerja klon Git dan cabang Git dan saya akan menunjukkan kepada anda bagaimana anda dapat mengklon cabang tertentu berdasarkan keperluan anda. Mari kita mulakan! ?
Prasyarat
- Pengetahuan asas terminal
- Keupayaan untuk menaip perintah di terminal
- Git dipasang (saya masih akan menunjukkan caranya)
- Akaun GitHub
- Senyuman di wajah anda (Pakai senyuman itu?)
Pengenalan Pantas kepada Git dan GitHub
Menurut Wikipedia,
Git adalah sistem kawalan versi terdistribusi yang dirancang untuk mengesan perubahan pada projek (kod) dalam pengembangan perisian. Ini bertujuan untuk menegakkan koordinasi, kolaborasi, kepantasan, dan kecekapan di antara pemaju.GitHub, sebaliknya, adalah perkhidmatan hosting berasaskan web untuk kawalan versi menggunakan Git. Ia menawarkan semua fungsi kawalan versi diedarkan dan pengurusan kod sumber Git serta menambahkan lebih banyak ciri untuk kod komputer.
Cara Memasang Git pada Windows
Muat turun dan pasang Git untuk Windows Installer terkini di sini.
Cara Memasang Git di Linux
Berikut adalah arahan 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 Memasang Git pada Mac
Muat turun dan pasang pemasang Git untuk Mac terkini di sini.
Atau anda boleh menaip arahan ini:
brew install git
Sekarang kita sudah memasang Git, mari beralih ke tutorial.
Pengenalan kepada Git Clone
Git membolehkan anda mengurus dan memodifikasi projek anda dalam "repositori". Repositori ini disimpan di perkhidmatan hosting berasaskan web untuk kawalan versi, seperti GitHub.
Anda kemudian boleh mengklon repositori ini ke mesin tempatan anda dan mempunyai semua fail dan cawangan secara tempatan (saya akan menerangkan lebih lanjut mengenai cawangan tidak lama lagi).

Contohnya, anda boleh mengklon repositori freeCodeCamp dengan SSH seperti:
git clone [email protected]:freeCodeCamp/freeCodeCamp.git
Pengenalan Cawangan Git
Semasa mengerjakan projek, anda mungkin akan mempunyai ciri yang berbeza. Dan pelbagai penyumbang akan mengusahakan projek ini dan ciri-cirinya.
Cabang membolehkan anda membuat "taman permainan" dengan fail yang sama di master
cawangan. Anda boleh menggunakan cabang ini untuk membina ciri bebas, menguji ciri baru, membuat perubahan pecah, membuat pembaikan, menulis dokumen atau mencuba idea tanpa melanggar atau menjejaskan kod pengeluaran. Apabila anda selesai, anda menggabungkan cawangan menjadi master
cawangan pengeluaran .
Branching adalah konsep teras di Git yang juga digunakan di GitHub untuk menguruskan aliran kerja dari pelbagai versi dari satu projek. The master
cawangan sentiasa cawangan lalai dalam repositori yang paling sering dianggap "pengeluaran dan kod deployable". Cawangan baru suka passwordless-auth
atau refactor-signup-ux
boleh dibuat dari master
cawangan.

Cara Klon Cawangan Git
Walaupun anda dapat mengklon repositori dengan git clone
perintah, ingatlah bahawa ini mengklon cabang dan alat kawalan jauh HEAD
. Ini biasanya master
secara lalai dan merangkumi semua cawangan lain di repositori.
Oleh itu, apabila anda mengklon repositori, anda mengklon master
dan semua cabang lain. Ini bererti anda perlu memeriksa cawangan lain sendiri.
Katakan tugas anda pada projek adalah mengerjakan satu ciri untuk menambahkan pengesahan tanpa kata laluan ke papan pemuka pengguna. Dan ciri ini ada di passwordless-auth
cawangan.
Anda sebenarnya tidak memerlukan master
cabang kerana "cabang ciri" anda akan digabungkan menjadi master
sesudahnya. Lalu bagaimana anda mengklon passwordless-auth
cabang ini tanpa mengambil semua cawangan lain dengan "sekumpulan fail yang anda tidak perlukan"?
Saya membuat repositori sampel ini untuk menjelaskan perkara ini. Repositori ini menyimpan blog ringkas yang dibina dengan Nextjs dan mempunyai empat cabang dummy:
- tuan
- penipu
- pementasan
- tanpa kata laluan
Dalam Nextjs, setiap fail di dalam folder pages/api
dipetakan ke /api/*
jalan dan akan dianggap sebagai titik akhir API dan bukan page
. Di repositori kami, saya telah membuat API dummy yang berbeza dalam direktori ini untuk membuat setiap cabang berbeza.
The master
cawangan memegang fail halaman / api / hello.js manakala passwordless-auth
memegang fail halaman / api / auth.js . Setiap fail hanya mengembalikan respons teks palsu. Lihat master
respons API halo di sini (dengan mesej khas untuk anda?).
Mari kloning repositori:
git clone [email protected]:BolajiAyodeji/nextjs-blog.git
Ini memberi kita akses ke semua cawangan di repositori ini dan anda boleh beralih antara satu sama lain dengan mudah untuk melihat setiap versi dan failnya.
git branch -a

Tertanya-tanya dari mana cawangan jauh / asal / .. ?
Apabila anda mengklon repositori, anda menarik data dari repositori di internet atau pelayan dalaman yang dikenali sebagai alat kawalan jauh . Kata asal adalah alias yang dibuat oleh Git anda untuk menggantikan URL jauh (anda boleh menukar atau menentukan alias lain jika anda mahu).
Ini alat kawalan jauh / asal / .. cawangan menunjukkan anda kembali kepada repositori asal anda diklon dari internet supaya anda masih boleh melakukan tarik / tolak dari asalan.

Oleh itu, apabila anda mengklon master
mesin anda, remotes/origin/master
adalah master
cawangan asli di internet, dan master
berada di mesin tempatan anda. Oleh itu, anda akan menarik / menolak dari dan ke remotes/origin/master
.
Ringkasnya Remote adalah URL yang mengarahkan anda ke repositori di internet sementara Origin adalah alias untuk URL jarak jauh ini.

Cara Menglon Cawangan Khusus
Sekarang mari kita kloning cabang tertentu dari repositori demo kami. Terdapat dua cara untuk mengklon cabang tertentu. Anda boleh:
- Klon repositori, ambil semua cawangan, dan periksa ke cabang tertentu dengan segera.
- Klon repositori dan ambil hanya satu cabang.
Pilihan Satu
git clone --branch
atau
git clone -b
Dengan ini, anda mengambil semua cawangan di repositori, checkout ke yang anda tentukan, dan cabang tertentu menjadi cawangan tempatan yang dikonfigurasi untuk git push
dan git pull
. Tetapi anda masih mengambil semua fail dari setiap cawangan. Ini mungkin bukan yang anda mahukan bukan? ?
Mari mengujinya:
git clone -b passwordless-auth [email protected]:BolajiAyodeji/nextjs-blog.git
Ini secara automatik dikonfigurasi passwordless-auth
sebagai cawangan tempatan tetapi masih menjejaki cawangan lain.


Pilihan Dua
git clone --branch --single-branch
atau
git clone -b --single-branch
Ini melakukan tindakan yang sama seperti pilihan satu, kecuali --single-branch
pilihan tersebut diperkenalkan dalam versi Git 1.7.10 dan yang lebih baru. Ini membolehkan anda hanya mengambil fail dari cawangan yang ditentukan tanpa mengambil cawangan lain.
Mari mengujinya:
git clone -b passwordless-auth --single-branch [email protected]:BolajiAyodeji/nextjs-blog.git
Ini secara automatik dikonfigurasi passwordless-auth
sebagai cawangan tempatan dan hanya menjejaki cawangan ini.


Sekiranya anda menjalankan, cd pages/api
anda akan menemui auth.js
fail di passwordless-auth
cawangan seperti yang diharapkan dari persediaan sebelumnya.
Kesimpulannya
Anda mungkin kehabisan internet atau ruang penyimpanan tetapi anda perlu mengerjakan tugas di cawangan tertentu. Atau anda mungkin mahu mengklon cabang tertentu dengan fail terhad kerana pelbagai sebab. Nasib baik, Git memberi anda kelonggaran untuk melakukan ini. Lenturkan otot anda dan cubalah, ada banyak lagi "Git" yang perlu dipelajari.
Satu demi satu, ya? ✌?