Pengembangan perangkat lunak adalah pekerjaan kolaboratif. Sebagai seorang insinyur perangkat lunak, Anda perlu berbagi pekerjaan Anda dengan orang lain. Tetapi berbagi kode dan berkolaborasi bisa menjadi rumit. Sulit untuk melacak berbagai perubahan yang terjadi selama siklus hidup perangkat lunak. Jadi tim pengembangan mengandalkan alat kontrol versi untuk membantu proses kolaborasi perangkat lunak. Git adalah salah satu alat kontrol versi paling menonjol di industri perangkat lunak.
Tip: Dalam tutorial ini, Anda akan belajar bagaimana menggunakan dasar-dasar Git. Setiap bagian diakhiri dengan beberapa pertanyaan. Anda dapat membaca pertanyaan sebelum Anda mulai membaca bagian. Ini akan membantu Anda memahami dan memperhatikan poin-poin penting.
Selamat belajar Git!
Git: Ikhtisar Singkat
Git adalah sistem kontrol versi terdistribusi. Itu melacak setiap perubahan yang Anda buat pada file dan folder Anda. Ini memudahkan Anda untuk menyimpan pekerjaan yang sedang berlangsung. Jika ada masalah, Anda dapat dengan mudah memeriksa versi file atau folder sebelumnya. Jika perlu, Anda bahkan dapat mengembalikan seluruh basis kode ke versi yang lebih lama.
Pengembangan Git dimulai pada tahun 2005. Grup kernel Linux digunakan untuk memelihara kode mereka di BitKeeper, sistem kontrol versi terdistribusi yang dipatenkan. Namun, BitKeeper menarik penggunaan produk secara gratis. Jadi Linus Torvalds, pencipta dan pengembang utama Linux, merancang sistem kontrol versi terdistribusi open-source baru yang akan memenuhi persyaratan komunitas pengembangan Linux. Dan Git lahir.
Sebagai sistem kontrol versi terdistribusi, Git tidak memerlukan otoritas terpusat untuk melacak kode. Kontrol versi terpusat yang lebih lama seperti CVS, SVN, atau Perforce memerlukan server pusat untuk mempertahankan riwayat perubahan. Git dapat melacak semua perubahan secara lokal dan bekerja secara peer-to-peer. Jadi ini lebih fleksibel daripada sistem terpusat.
Pertanyaan:
- Mengapa Anda harus menggunakan Git?
- Apa manfaat dari kontrol versi terdistribusi??
Menginstal Git
Untuk sistem Linux menginstal Git itu mudah. Jika Anda menggunakan distribusi berbasis Debian seperti Ubuntu, Anda dapat menggunakan apt install:
$ sudo apt install git-allUntuk Fedora, RHEL atau CentOS, Anda dapat menggunakan:
$ sudo dnf install git-allAnda dapat memeriksa apakah Git telah diinstal, menggunakan perintah berikut:
$ git --versiIni akan menunjukkan versi Git yang Anda instal, misalnya:
git versi 2.17.0Setelah Anda menginstal Git, saatnya untuk mengatur nama pengguna dan email Anda:
$ git config --pengguna global.nama "nama pengguna Anda"$ git config --pengguna global.email "[dilindungi email]"
Anda dapat memeriksa apakah konfigurasi telah diatur dengan benar menggunakan perintah berikut:
$ git config --listpengguna.nama=namapenggunaanda
[email protected]
Tip: Sangat penting untuk mengatur pengguna.nama dan pengguna.email karena konfigurasi ini digunakan untuk melacak perubahan Anda.
Pertanyaan
- Apa perintah untuk menginstal Git di sistem Linux Anda??
- Mengapa Anda harus mengatur pengguna.nama dan pengguna.konfigurasi email? Bagaimana Anda mengaturnya??
Memahami Git Secara Konseptual
Untuk menggunakan Git, pertama-tama Anda perlu memahami empat konsep ini:
- Direktori Kerja
- Area Pementasan
- Gudang
- Repositori Jarak Jauh
Direktori kerja, area pementasan, dan repositori adalah lokal untuk mesin Anda. Repositori jarak jauh dapat berupa komputer atau server lain. Mari kita pikirkan konsep-konsep ini sebagai empat kotak yang dapat menampung kertas A1 standar.
Misalkan Anda sedang menulis dokumen dengan tangan di atas kertas A1 di meja Anda. Anda menyimpan dokumen ini di kotak direktori kerja. Pada tahap tertentu dari pekerjaan Anda, Anda memutuskan bahwa Anda siap untuk menyimpan salinan pekerjaan yang telah Anda lakukan. Jadi Anda membuat fotokopi kertas Anda saat ini dan memasukkannya ke dalam kotak pementasan.
Kotak pementasan adalah area sementara. Jika Anda memutuskan untuk membuang fotokopi di kotak pementasan dan memperbaruinya dengan salinan baru dari dokumen direktori kerja, tidak akan ada catatan permanen dari dokumen yang dipentaskan itu.
Misalkan Anda cukup yakin bahwa Anda ingin menyimpan catatan permanen dari dokumen yang Anda miliki di kotak pementasan. Kemudian Anda membuat fotokopi dokumen kotak pementasan dan memindahkannya ke kotak repositori.
Saat Anda memindahkannya ke kotak repositori, dua hal terjadi:
- Cuplikan dokumen disimpan secara permanen.
- Entri file log dibuat agar sesuai dengan snapshot.
Entri log akan membantu Anda menemukan snapshot tertentu dari dokumen Anda jika Anda membutuhkannya di masa mendatang.
Sekarang, di kotak repositori lokal, Anda memiliki snapshot pekerjaan Anda dan entri log. Tapi itu hanya tersedia untuk Anda. Jadi Anda membuat salinan dokumen repositori lokal Anda bersama dengan file log dan memasukkannya ke dalam kotak di ruang persediaan perusahaan. Sekarang siapa pun di perusahaan Anda dapat datang dan membuat salinan dokumen Anda dan membawanya ke meja mereka. Kotak di ruang persediaan akan menjadi repositori jarak jauh.
Repositori jarak jauh seperti membagikan dokumen Anda menggunakan Google Documents atau Dropbox.
Pertanyaan:
- Bisakah Anda menentukan direktori kerja, pementasan, repositori, dan repositori jarak jauh??
- Bisakah Anda menggambar bagaimana dokumen berpindah dari satu tahap ke tahap lainnya??
Repositori Git Pertama Anda
Setelah Anda menginstal Git, Anda dapat mulai membuat repositori Git Anda sendiri. Di bagian ini, Anda akan menginisialisasi repositori Git Anda.
Misalkan Anda sedang mengerjakan proyek pengembangan web. Mari buat folder bernama project_helloworld dan ubah ke direktori:
$ mkdir project_helloworld$cd project_helloworld
Anda dapat memberi tahu Git untuk memantau direktori ini dengan perintah berikut:
$ git initAnda akan melihat output seperti ini:
Repositori Git kosong yang diinisialisasi di /Users/zakh/_work/LearnGIT/git_tutorial/project_helloworld/.git
Sekarang semua file dan folder di dalam project_helloworld akan dilacak oleh Git.
Pertanyaan:
- Bagaimana Anda menginisialisasi direktori yang akan dilacak oleh Git?
Perintah Git Dasar: status, log, tambahkan, dan komit
Perintah status menunjukkan kondisi direktori kerja Anda saat ini dan perintah log menunjukkan riwayat. Mari kita coba perintah status:
$git statusDi kepala cabang
Komitmen awal
tidak ada yang perlu dikomit (buat/salin file dan gunakan "git add" untuk melacak)
Output dari perintah git status mengatakan bahwa Anda berada di cabang master. Ini adalah cabang default yang diinisialisasi oleh Git. (Anda dapat membuat cabang sendiri. Lebih lanjut tentang cabang nanti). Juga, outputnya mengatakan tidak ada yang perlu dilakukan.
Mari kita coba perintah log:
$git logfatal: 'master' cabang Anda saat ini belum memiliki komit
Jadi, saatnya membuat beberapa kode. Mari kita buat file bernama index.html:
Halo Dunia
Anda dapat menggunakan editor teks untuk membuat file. Setelah Anda menyimpan file, periksa kembali statusnya:
$git statusDi kepala cabang
Komitmen awal
File yang tidak terlacak:
(gunakan "git add
indeks.html
tidak ada yang ditambahkan ke komit tetapi ada file yang tidak terlacak (gunakan "git add" untuk melacak)
Git memberi tahu Anda bahwa Anda memiliki file bernama index.html di direktori kerja Anda yang tidak terlacak.
Ayo pastikan indeks.html dilacak. Anda harus menggunakan perintah add:
$ git tambahkan indeks.htmlSebagai alternatif, Anda dapat menggunakan ".” Opsi untuk menambahkan semua yang ada di direktori:
$ git tambahkan .Sekarang mari kita periksa lagi statusnya:
$git statusDi kepala cabang
Komitmen awal
Perubahan yang harus dilakukan:
(gunakan "git rm --cached
file baru: indeks.html
Hijau menunjukkan bahwa indeks.file html sedang dilacak oleh Git.
Tip: Seperti yang disebutkan dalam instruksi di atas, jika Anda menggunakan perintah:
$ git rm --indeks yang di-cache.htmlindeks Anda.html akan kembali ke status tidak terlacak. Anda harus menambahkannya lagi untuk mengembalikannya ke pementasan.]
Mari kita periksa log lagi:
$git logfatal: 'master' cabang Anda saat ini belum memiliki komit
Jadi meskipun Git melacak indeks.html, belum ada apa pun di repositori Git tentang file tersebut. Mari kita lakukan perubahan kita:
$ git commit -m "Indeks komit.html"Outputnya akan terlihat seperti ini:
[master (root-commit) f136d22] Mengkomit indeks.html
1 file diubah, 6 sisipan(+)
buat mode 100644 indeks.html
Teks di dalam tanda kutip setelah "-m" adalah komentar yang akan masuk ke file log. Anda dapat menggunakan git commit tanpa “-m”, tetapi kemudian Git akan membuka editor teks yang meminta Anda untuk menulis komentar. Lebih mudah untuk hanya menempatkan komentar langsung di baris perintah.
Sekarang mari kita periksa file log kita:
$git logkomit f136d22040ba81686c9522f4ff94961a68751af7
Pengarang: Zak H
Tanggal: Sen 4 Jun 16:53:42 2018 -0700
Indeks komitmen.html
Anda dapat melihatnya menunjukkan komit. Anda telah berhasil melakukan perubahan Anda ke repositori lokal Anda. Jika Anda ingin melihat log yang sama secara ringkas, Anda dapat menggunakan perintah berikut:
$ git log --onelinef136d22 Indeks komitmen.html
Ke depan, kami akan menggunakan bentuk perintah log ini karena memudahkan untuk memahami apa yang sedang terjadi.
Mari mulai mengedit indeks.html. Buka indeks.html di editor dan ubah baris “Hello world” menjadi “Hello world! Ini aku!” dan simpan. Jika Anda memeriksa statusnya lagi, Anda akan melihat Git memperhatikan bahwa Anda sedang mengedit file:
$git statusDi kepala cabang
Perubahan tidak dipentaskan untuk komit:
(gunakan "git add
(gunakan "git checkout --
diubah: indeks.html
tidak ada perubahan yang ditambahkan ke komit (gunakan "git add" dan/atau "git commit -a")
Perubahan masih ada di direktori kerja Anda. Anda harus mendorongnya ke area pementasan. Gunakan perintah add yang Anda gunakan sebelumnya:
$ git tambahkan .Periksa kembali statusnya:
$git statusDi kepala cabang
Perubahan yang harus dilakukan:
(gunakan "git reset KEPALA
diubah: indeks.html
Sekarang perubahan Anda ada di area pementasan. Anda dapat mengkomitnya ke repositori untuk penyimpanan permanen:
$ git commit -m "Indeks yang dimodifikasi.html ke pesan yang lebih bahagia"[master 0586662] Indeks yang dimodifikasi.html ke pesan yang lebih bahagia
1 file diubah, 1 penyisipan (+), 1 penghapusan (-)
Anda dapat memeriksa log untuk perubahan permanen Anda:
$ git log --oneline0586662 Indeks yang dimodifikasi.html ke pesan yang lebih bahagia
f136d22 Indeks komitmen.html
Di bagian ini, Anda telah belajar menggunakan status, log, add, dan commit perintah untuk melacak dokumen Anda di Git.
Pertanyaan:
- Apa yang dilakukan status git??
- Apa yang dilakukan git log??
- Apa yang dilakukan git add??
- Apa yang dilakukan git commit??
Kembali ke File Lama Menggunakan Checkout
Saat Anda mengkomit file di Git, itu menciptakan hash unik untuk setiap komit. Anda dapat menggunakan ini sebagai pengidentifikasi untuk kembali ke versi yang lebih lama.
Misalkan Anda ingin kembali ke versi indeks sebelumnya.html. Pertama, mari kita lihat indeksnya.html dalam kondisi saat ini:
$ indeks kucing.htmlHalo Dunia! Ini aku!
Anda dapat melihat bahwa Anda memiliki versi yang lebih baru (“Halo dunia! Ini aku!”). Mari kita periksa lognya:
$ git log --oneline0586662 Indeks yang dimodifikasi.html ke pesan yang lebih bahagia
f136d22 Indeks komitmen.html
Hash untuk versi sebelumnya adalah f136d22 ("Hello world"). Anda dapat menggunakan perintah checkout untuk mendapatkan versi itu:
$ git checkout f136d22Catatan: memeriksa 'f136d22'.
Anda berada dalam kondisi 'KEPALA terpisah'. Anda dapat melihat-lihat, membuat perubahan eksperimental
dan komit, dan Anda dapat membuang komit apa pun yang Anda buat dalam status ini
tanpa memengaruhi cabang mana pun dengan melakukan checkout lain.
Jika Anda ingin membuat cabang baru untuk mempertahankan komit yang Anda buat, Anda dapat
lakukan (sekarang atau nanti) dengan menggunakan -b dengan perintah checkout lagi. Contoh:
git checkout -b
HEAD sekarang di f136d22… Melakukan indeks.html
Jika Anda melihat isi indeks.html, Anda akan melihat:
$ indeks kucing.htmlHalo Dunia
Ini hanya memiliki "Halo dunia". Jadi indeks Anda.html telah berubah ke versi yang lebih lama. Jika Anda memeriksa statusnya:
$git statusKEPALA terlepas di f136d22
tidak ada yang perlu dilakukan, direktori kerja bersih
Git pada dasarnya memberi tahu Anda bahwa HEAD tidak pada komit terbaru. Anda dapat kembali ke komit terbaru dengan memeriksa cabang master menggunakan perintah berikut:
$git checkout master checkoutPosisi HEAD sebelumnya adalah f136d22… Melakukan indeks.html
Beralih ke cabang 'master'
Sekarang jika Anda memeriksa status:
$git statusDi kepala cabang
tidak ada yang perlu dilakukan, direktori kerja bersih
Peringatan merah hilang. Juga, jika Anda memeriksa indeks Anda.html, Anda harus kembali ke versi terbaru:
$ indeks kucing.htmlHalo Dunia! Ini aku!
Perintah checkout membawa Anda ke berbagai status. Kami akan mempelajari lebih lanjut tentang checkout di bagian selanjutnya.
Pertanyaan:
- Bagaimana Anda menggunakan perintah git checkout untuk membuka versi file yang lebih lama??
- Bagaimana Anda menggunakan git checkout untuk kembali ke versi terbaru dari file??
Checkout, Percabangan, dan Penggabungan
Percabangan adalah salah satu fitur terbaik Git. Ini membantu Anda memisahkan pekerjaan dan bereksperimen lebih banyak. Dalam sistem kontrol versi lain, percabangan memakan waktu dan sulit. Git membuat percabangan dan penggabungan lebih mudah.
Seperti yang Anda perhatikan dalam perintah status, saat Anda membuat repositori Git baru, Anda berada di cabang master.
$git statusDi kepala cabang
tidak ada yang perlu dilakukan, direktori kerja bersih
Misalkan Anda membuat situs web untuk teman Anda David. Anda ingin menggunakan kembali kode situs web Anda sendiri. Bercabang adalah solusi yang bagus. Mari kita hubungi cabang david_website.
Anda dapat mengeluarkan perintah berikut:
$ git cabang david_websiteAnda dapat menggunakan perintah berikut untuk melihat semua cabang:
$ git cabang --listdavid_website
* tuan
Bintang (*) di sebelah master berarti Anda masih berada di cabang master. Anda dapat memeriksa cabang david_website dengan perintah berikut:
$ git checkout david_websiteBeralih ke cabang 'david_website'
Sekarang jika Anda kembali memeriksa daftar cabang, Anda melihat:
$ git cabang --list* david_website
menguasai
Jadi Anda berada di cabang david_website.
Mari kita ubah indeks.html dari “Halo dunia! Ini aku!” menjadi “Halo dunia! Ini David!” dan kemudian panggung dan komit:
$ git tambahkan .$ git commit -m "Mengubah situs web untuk David"
Jika Anda memeriksa log, Anda akan melihat:
$ git log --oneline345c0f4 Mengubah situs web untuk David
0586662 Indeks yang dimodifikasi.html ke pesan yang lebih bahagia
f136d22 Indeks komitmen.html
Dan file indeks Anda akan terlihat seperti ini:
$ indeks kucing.htmlHalo Dunia! itu david!
Sekarang mari kita periksa cabang master lagi:
$git checkout master checkoutBeralih ke cabang 'master'
Jika Anda memeriksa status dan log:
$git statusDi kepala cabang
tidak ada yang perlu dilakukan, direktori kerja bersih
$ git log --oneline
0586662 Indeks yang dimodifikasi.html ke pesan yang lebih bahagia
f136d22 Indeks komitmen.html
Perhatikan Anda tidak memiliki komit ketiga Anda di master. Karena komit itu hanya dipertahankan di cabang david_website.
Inilah yang terjadi
Misalkan pada tahap ini Anda memutuskan, Anda tidak ingin melanjutkan situs web Anda. Anda hanya akan menjadi pengembang untuk David. Jadi, Anda ingin menggabungkan perubahan di cabang david_website ke master. Dari cabang master, Anda hanya perlu mengeluarkan perintah berikut (perintah status digunakan untuk memeriksa apakah Anda berada di tempat yang tepat):
$git statusDi kepala cabang
tidak ada yang perlu dilakukan, direktori kerja bersih
$ git gabung david_website
Memperbarui 0586662… 345c0f4
Maju cepat
indeks.html | 2 +-
1 file diubah, 1 penyisipan (+), 1 penghapusan (-)
Tip: Anda menarik perubahan dari david_website menjadi master. Anda harus menguasainya untuk mencapai ini.
Sekarang jika Anda memeriksa log pada master, Anda melihat komit ketiga ada di sana:
$ git log --oneline345c0f4 Mengubah situs web untuk David
0586662 Indeks yang dimodifikasi.html ke pesan yang lebih bahagia
f136d22 Indeks komitmen.html
Anda telah berhasil menggabungkan cabang david_website menjadi master. Dan indeks Anda.html untuk cabang master terlihat identik dengan cabang david_website:
$ indeks kucing.htmlHalo Dunia! itu david!
Anda dapat menyimpan cabang david_website:
$ git cabang --listdavid_website
* tuan
Atau Anda dapat menghapusnya:
$ git cabang -d david_websiteCabang david_website yang dihapus (sebelumnya 345c0f4).
Setelah dihapus, Anda seharusnya tidak melihat cabang david_website lagi:
$ git cabang --list* tuan
Tip: Selama penggabungan, jika Git tidak dapat bergabung secara otomatis, itu akan memberi Anda kesalahan konflik penggabungan. Dalam hal ini, Anda harus menyelesaikan masalah penggabungan secara manual.
Pertanyaan:
- Mengapa Anda perlu bercabang??
- Bagaimana Anda bercabang dan menggabungkan file dan folder folder?
Repositori Jarak Jauh
Sampai sekarang, semua pekerjaan Anda bersifat lokal. Anda telah melakukan perubahan Anda ke repositori lokal. Tapi inilah saatnya untuk berbagi pekerjaan Anda dengan dunia.
Repositori jarak jauh Git pada dasarnya adalah salinan lain dari repositori lokal Anda yang dapat diakses oleh orang lain. Anda dapat mengatur server dan menjadikannya repositori jarak jauh. Tetapi kebanyakan orang menggunakan GitHub atau Bitbucket untuk tujuan ini. Anda dapat membuat repositori publik secara gratis di sana yang dapat diakses oleh siapa saja.
Mari buat repositori jarak jauh di GitHub.
Pertama, Anda perlu membuat akun GitHub[]. Setelah Anda memiliki akun, buat repositori baru menggunakan tombol "Repositori baru". Gunakan "project_website" sebagai nama repositori (Anda dapat memilih yang lain jika Anda mau).
Anda akan melihat tab Kode dengan instruksi seperti ini:
… atau buat repositori baru di baris perintah
echo "# project_website" >> README.mdgit init
git tambahkan README.md
git commit -m "komit pertama"
git remote tambahkan asal [email protected]:namapenggunaanda/project_website.git
git push -u asal master
Salin perintah "git remote add Origin" berikut dan jalankan di direktori kerja Anda:
$ git jarak jauh tambahkan Asal [email protected]:namapenggunaanda/project_website.gitCatatan: Dalam kasus Anda, nama pengguna Anda harus sama dengan yang Anda gunakan untuk membuat akun GitHub Anda.
Pada perintah di atas, Anda menginstruksikan Git lokasi repositori jarak jauh. Perintah tersebut memberi tahu Git bahwa "asal" untuk direktori kerja project_helloworld Anda akan menjadi "[dilindungi email]:namapenggunaanda/project_website.git”.
Sekarang Dorong kode Anda dari cabang master Anda ke Origin (repositori jarak jauh):
$ git push asal master originMenghitung benda: 9, selesai.
Kompresi delta menggunakan hingga 4 utas.
Mengompresi objek: 100% (6/6), selesai.
Objek penulisan: 100% (9/9), 803 byte | 0 byte/dtk, selesai.
Total 9 (delta 2), digunakan kembali 0 (delta 0)
jarak jauh: Menyelesaikan delta: 100% (2/2), selesai.
Ke [email protected]:namapenggunaanda/project_website.git
* [cabang baru] master -> master
Jika Anda me-refresh browser Anda di GitHub, Anda akan melihat bahwa indeks.file html ada di sana. Jadi kode Anda bersifat publik dan pengembang lain dapat memeriksa dan memodifikasi kode di repositori jarak jauh.
Sebagai pengembang, Anda akan bekerja dengan kode orang lain. Jadi ada baiknya mencoba kode checkout dari GitHub.
Mari kita pergi ke direktori baru di mana Anda tidak memiliki apa-apa. Di sisi kanan repositori GitHub, Anda akan melihat tombol "Klon atau unduh". Jika Anda mengkliknya, itu akan memberi Anda alamat SSH. Jalankan perintah berikut dengan alamat SSH:
$ git clone [email protected]:namapenggunaanda/project_website.gitOutputnya akan terlihat seperti ini:
$ git clone [email protected]:namapenggunaanda/project_website.gitKloning ke 'project_website'…
jarak jauh: Menghitung objek: 9, selesai.
jarak jauh: Mengompresi objek: 100% (4/4), selesai.
jarak jauh: Total 9 (delta 2), digunakan kembali 9 (delta 2), paket-digunakan kembali 0
Menerima objek: 100% (9/9), selesai.
Menyelesaikan delta: 100% (2/2), selesai.
Memeriksa konektivitas… selesai.
Ini akan membuat project_website di folder bersih Anda. Jika Anda masuk ke dalam, Anda akan melihat indeks.html dari project_helloworld Anda.
Jadi, Anda telah mencapai hal berikut:
- Membuat dan membuat perubahan di project_helloworld
- Mengunggah kode ke GitHub di project_website
- Mengunduh kode dari GitHub
Mari kita file lain dari direktori kerja baru project_website:
$ sentuh ReadMe.md$ git tambahkan .
$ git commit -m "Menambahkan ReadMe.md"
$ git push asal master origin
Jika Anda me-refresh halaman project_website GitHub, Anda akan melihat ReadMe.file md di sana.
Catatan: Saat Anda mengunduh kode dari GitHub, direktori kerja secara otomatis mengetahui asalnya. Anda tidak perlu mendefinisikannya dengan perintah "git remote add origin".
Pertanyaan:
- Mengapa Anda perlu menggunakan repositori jarak jauh?
- Bagaimana Anda mengatur repositori lokal Anda saat ini untuk terhubung ke repositori jarak jauh??
- Bagaimana Anda mengkloning repositori jarak jauh ke komputer lokal Anda??
Kesimpulan
Anda dapat menemukan informasi lebih lanjut tentang semua perintah di Git docs[]. Meskipun ada alat Git UI yang tersedia, baris perintah adalah cara terbaik untuk menguasai Git. Ini akan memberi Anda fondasi yang lebih kuat untuk pekerjaan pengembangan Anda.
Pelajaran lanjutan:
- https://git-scm.com/docs
- https://git-scm.com/book/en/v2
- https://git-scm.com/videos