Mempelajari Git
Tentang Git
VCS atau version control system adalah sebuah sistem yang merekam perubahan-perubahan dari sebuah berkas atau sekumpulan berkas dari waktu ke waktu sehingga kita dapat menilik kembali versi khusus suatu saat nanti. Git merupakan sistem distribusi VCS yang sangat populer, free dan open source.
Perintah dasar Git
git init
: inisialisasi repositori ke dalam sistem git.git clone
: membuat duplikat repositori.git add
: menambahkan berkas proyek kedalam tahapan perubahan sistem git.git commit
: meyerahkan proyek yang sudah masuk pada tahapan perubahan dengan ditandai ke dalam sistem git.git status
: menunjukkan status perubahan pada repositori.git branch
: menunjukkan cabang yang sedang dikerjakan pada repoitori lokal.git merge
: menggabungkan proyek.git pull
: memperbarui repositori lokal terhadap perkembangan repositori server.git push
: memperbarui repositori server terhadap repositori lokal yang telah dikembangkan.
Berikut ini pembahasan lebih lanjut agar lebih memahami bagaimana menggunakan Git yang saya rangkum:
Instalasi
Instalasi Git di Linux atau Distro Debian
sudo apt-get install git
Instalasi Git di Windows
Periksa versi Git
# Memeriksa versi Git
git -v
# atau
git --version
# Memperbarui versi Git di Windows
git update-git-for-windows
Konfigurasi
Mengatur atau melakukan setup informasi pengguna pada semua repositori lokal.
# membuat nama sebagai identitas saat meninjau versi histori
git config --global user.name "[namaawal namaakhir]"
# mengatur alamat email yang menghubungkan dengan setiap tanda histori
git config --global user.email "[alamatemail]"
# memeriksa konfigurasi Git
git config --list
# mengatur warna baris perintah otomatis pada Git untuk memudahkan peninjauan
git config --global color.ui auto
Inisisasi
Mengatur inisialisasi atau melakukan init repositori pada direktori.
# inisialisasi direktori yang ada sebagai repositori Git, sehingga membuat file .git sebagai database git
git init
Remote
Penghubung repositori lokal dengan repositori yang dihosting.
# Melihat remote
git remote -v
# Menambah remote
git add remote [namaremote] git@github.com:nama/namarepository.git
# Mengganti nama remote
git remote rename [namasebelumnya] [namasesudahnya]
# Menghapus remote
git remote remove [namaremotedihapus]
# Mengirim revisi ke remote repository
git push [namaremote] [namacabang]
Duplikasi
Membuat duplikasi atau melakukan clone repositori.
# mengambil seluruh repositori dari lokasi yang dihosting melalui URL
git clone [url]
Memeriksa riwayat komit
Memeriksa log atau melakukaninspect komit terhdadap perubahan repositori.
# menampilkan riwayat komit untuk cabang yang sedang aktif
# panjang
git log
# pendek
git log --oneline
# menampilkan komit pada cabang A yang tidak terdapat pada cabang B
git log branchB..branchA
# menampilkan komit yang mengubah file, bahkan diseluruh penggantian nama
git log --follow [file]
Memeriksa perbedaan
Melakukan compare atau membandingkan perbedaan, dan informasi objek.
# menampilkan perbedaan apa yang ada di cabang A yang tidak ada di cabang B
git diff branchB..branchA
# menampilkan objek apapun di Git dalam format yang dapat dibaca manusia
git show [SHA]
Percabangan & Penggabungan
Membuat cabang atau branch, mengisolasi pekerjaan di cabang, mengubah konteks checkout, dan mengintegrasikan perubahan atau menggabungkan cabang merge.
# melihat daftar cabang, tanda * sebagai menunjukan cabang yang aktif
git branch
# membuat sebuah cabang baru pada komit saat ini
git branch [namapercabangan]
# pindah ke cabang lain dan memeriksa ke direktori yang sedang dikerjakan
git checkout [namapercabangan]
# menggabungkan riwayat cabang yang ditentukan kedalam cabang saat ini
git merge [namapercabangan]
Menghapus cabang
Menghapus cabang dari repositori yang sudah tidak dikembangkan lagi, agar repositori bersih dan rapih. Gunakan perintah git branch
dengan argumen -d
diikuti nama cabangnya.
# Menghapus local branch
git branch -d [namabranch]
# -d atau --delete menghapus biasa
# -D atau --delete-force menghapus paksa
# Menghapus remote branch
git push [namaremote] -d [namabranch]
# Melihat semua branch yang terdapat pada local dan remote
git branch -a
Kondisi file dalam Git
Ada beberapa kondisi file dalam Git, yaitu , Modified, Staged, Commited.
- Untracked
- Modified
- Staged
- Commited
Kondisi file baru, hanya disimpan dalam file seperti biasa.
Kondisi file sudah dilakukan perubahan atau revisi, tetapi belum ditandai dan belum disimpan pada Git, hanya disimpan dalam file seperti biasa.
Kondisi file sudah dirubah dan ditandai, tetapi belum disimpan pada Git.
Kondisi file sudah disimpan pada Git.
# menampilkan perubahan file di direktori kerja, ditampilkan untuk komit berikutnya, kondisi file Untracked atau Modified
git status
# menambahkan file seperti yang terlihat saat ini ke komit berikutnya, kondisinya menjadi Staged
git add [nama_file]
# membatalkan file sambil mempertahankan perubahan dalam direktori kerja
git reset [nama_file]
# perbedaan dari apa yang diubah tapi tidak ditampilkan
git diff
# perbedaan dari apa yang ditampilkan tapi belum komit
git diff --staged
# komit konten yang ditampilkan sebagai snapshot komit baru, kondi file menjadi Commited
git commit -m "[pesan-deskripsi]"
Tracking path changes
Versi penghapusan file dan perubahan jalur.
# menghapus file dari proyek dan pementasan untuk komit
git rm [file]
# merubah jalur file saat ini dan pentaskan pemindahan
git mv [existing-path] [new-path]
# menampilkan semua riwayat komit dengan indikasi setiap jalur yang dipindahkan
git log --stat -M
Ignoring patterns
Mencegah pementasan atau komit file yang tidak disengaja.
# Simpan file dengan pola yang diinginkan sebagai .gitignore dengan pencocokan string langsung atau gumpalan wildcard
git config --global core.excludesfile [file]
Share & Update
Mengambil pembaruan dari repositori lain dan memperbarui repo lokal.
# menambahakn URL Git sebagai alias
git remote add [alias] [url]
# mengambil semua cabang dari jarak jauh Git
git fetch [alias]
# menggabungkan sebuah cabang jarak jauh ke cabang saat ini untuk memperbaruinya
git merge [alias]/[branch]
# mengirimkan komit cabang lokal ke cabang repository jarak jauh
git push [alias] [branch]
# mengambil dan menggabungkan komit dari pelacakan cabang jarak jauh
git pull
Rewrite history
Menulis ulang cabang, memperbarui komit, dan menghapus riwayat.
# menerapkan komit apapun dari cabang saat ini di depan yang ditentukan
git rebase [branch]
# bersihkan area pementasan, pasang kembali pohon kerja dari komit yang ditentukan
git reset --hard [commit]
Kontribusi pada repositori yang ada
# unduh repositori pada server ke repositori lokal
# ganti `owner/repo` dengan pemilik dan nama repositori untuk duplikat
git clone https://github.com/owner/repo.git
# pindah ke direktori `repo`
cd repo
# membuat branch baru untuk menyimpan perubahan
git branch my-branch
# pindah ke branch yang telah dibuat (proyek yang dikerjakan)
git checkout my-branch
# buat perubahan, contohnya merubah `file1.md` dan `file2.md` menggunakan text editor
# menambahkan perubahan-perubahan berkas (stage)
git add file1.md file2.md
# menyerahkan berkas yang telah dirubah
git commit -m "my snapshot"
# mengirimkan perubahan berkas ke repositori server
git push --set-upstream origin my-branch
Membuat repositori baru dan mempublikasinya ke GitHub
Pertama buat dulu sebuah repositori kosong di GitHub. Lalu buat sebuah repositori lokal seperti berikut ini:
# buat sebuah direktori, dan inisialisasi git pada direktori tersebut
git init my-repo
# pindah ke direktori `my-repo`
cd my-repo
# buat berkas proyek
touch README.md
# menambahakan berkas kedalam sistem git (stage)
git add README.md
# menyerahkan berkas yang ditandai ke dalam sistem git
git commit -m "add README to initial commit"
# menyediakan jalur ke repositori server di github
git remote add origin https://github.com/YOUR-USERNAME/YOUR-REPOSITORY-NAME.git
# mengirimkan berkas ke repositori server
git push --set-upstream origin main
Mengambil revisi repositori remote
Agar proyek yang sedang dikerjakan tidak bentrok, setiap kita bekerja dengan repositori yang mungkin terdapat perubahan disana seabaiknya kita mengambil revisi terbaru dari repositori utama terlebih dahulu. Sehingga repositori lokal juga diperbarui seperti repositori remote.
Ada 2 perintah untk mengambil revisi dari reposistori remote:
- fetch
- pull
fetch
Perintah git fetch
digunakan hanya untuk mengambil revisi (commit) saja terhadap repositori lokal.
pull
Perintah git pull
digunakan untuk mengambil revisi (commit) dan langsung melakukan penggabungan (merge) terhdadap repositori lokal.
Jadi sebaiknya kita menggunakan perintah git fetch
jika kita sudah melakukan perubahan pada repositori lokal, sehingga perubahannya tidak hilang.
Memeriksa riwayat dengan perintah git log
atau agar ringkas git log --oneline
, kita perhatikan perbedaan commit dari repositori lokal dengan repositori remote.
Untuk memeriksa lebih jelasnya kita periksa dengan perintah git diff
.
git diff main origin/main
main
adalah cabang (branch)main
di repositori lokal.origin/main
adalah cabangmain
di repositori remote.
Dari perbedaan tersebut kita bisa melakukan perubahan terlebih dahulu sebelum menggabungkan repositori remote dengan lokal.
Lalu kita gabungkan commit dari repositori remote dengan dengan repositori lokal dengan perintah git merge
.
git merge main origin/main
Setalah itu beri perintah ls
untuk melihat isi reposistori dan git log
untuk melihat riwayat perubahan.
Bekerja dengan repositori fork
Sinkronisasi repositori fork
# melakukan fetch dari repositori fork
git fetch upstream
# melakukan merge dari repositori fork ke repositori lokal
git merge upstream
# melakukan pull dari repositori lokal ke repositori remote
git pull
# sampai disini repositori remote sudah sinkron dengan repositori fork
Referensi:
Tidak ada komentar:
Posting Komentar
Terima kasih telah berkunjung dan membaca artikel ini. Silahkan berikan saran dan pertanyaan di kolom berikut ini.