
Apa itu Git?
Git adalah sistem kontrol versi terdistribusi dan sumber terbuka. Git memungkinkan pengembang dan data scientist melacak kode, menggabungkan perubahan, dan kembali ke versi lama - AWS. Git memungkinkan Anda menyinkronkan perubahan dengan server remote. Karena fleksibilitas dan popularitasnya, Git telah menjadi standar industri karena mendukung hampir semua lingkungan pengembangan, alat baris perintah, dan sistem operasi.
Bagaimana cara kerja Git?
Git menyimpan file Anda dan riwayat pengembangannya di repositori lokal. Setiap kali Anda menyimpan perubahan yang dibuat, Git membuat sebuah commit. Commit adalah cuplikan file saat ini. Commit-commit ini saling terhubung, membentuk grafik riwayat pengembangan, seperti yang ditunjukkan di bawah. Ini memungkinkan kita untuk kembali ke commit sebelumnya, membandingkan perubahan, dan melihat kemajuan proyek pengembangan - Azure DevOps. Commit diidentifikasi oleh hash unik yang digunakan untuk membandingkan dan membatalkan perubahan yang dibuat.

Grafik riwayat pengembangan
Branch
Branch adalah salinan kode sumber yang berjalan paralel dengan versi utama. Untuk menyimpan perubahan yang dibuat, gabungkan branch tersebut ke versi utama. Fitur ini mendorong kerja tim tanpa konflik. Setiap pengembang memiliki tugasnya masing-masing, dan dengan menggunakan branch, mereka dapat mengerjakan fitur baru tanpa gangguan dari rekan lainnya. Setelah tugas selesai, Anda dapat menggabungkan fitur baru ke versi utama (master branch). Jika Anda ingin mempelajari cara mengkloning branch, lihat tutorial Git Clone Branch ini.

Menambahkan fitur baru ke repositori
Commit
Ada tiga status file di Git: modified, staged, dan commit. Saat Anda melakukan perubahan pada sebuah file, perubahan tersebut disimpan di direktori lokal. Perubahan ini belum menjadi bagian dari riwayat pengembangan Git. Untuk membuat commit, Anda perlu terlebih dahulu men-stage file yang berubah. Anda dapat menambah atau menghapus perubahan di area staging lalu mengemas perubahan tersebut sebagai commit dengan pesan yang menjelaskan perubahan.

Tiga status file di Git
Apa manfaat Git?
- Melacak perubahan: Memungkinkan pengembang melihat perubahan historis. Riwayat pengembangan memudahkan identifikasi dan perbaikan bug.
- Integrasi IDE: Karena popularitasnya, integrasi Git tersedia di semua lingkungan pengembangan, misalnya VSCode dan JupyterLab.
- Kolaborasi tim: Tim pengembang dapat melihat kemajuan mereka, dan dengan menggunakan branch, mereka dapat bekerja sendiri-sendiri pada suatu tugas dan menggabungkan perubahan dengan versi utama. Pull request, penyelesaian konflik merge, dan code review mendorong kolaborasi tim.
- VCS terdistribusi: Dalam sistem terdistribusi, tidak ada penyimpanan file terpusat. Ada banyak cadangan untuk proyek yang sama. Pendekatan ini memungkinkan pengembang bekerja secara luring dan melakukan commit perubahan.
Git untuk Proyek Data Science
Git menyediakan kontrol versi untuk skrip, metrik, data, dan model. Dengan menggunakan ekstensi Git git-lfs, Anda dapat menyimpan dan memberi versi basis data besar serta model machine learning. Dalam proyek data science yang umum, Anda memiliki notebook Jupyter, dataset, model, metadata, dan metrik model. Metadata mencakup file yang berisi meta-informasi tentang model machine learning, fitur, parameter model, dan file otomatisasi. Semua ini diperlukan untuk memantau kemajuan aplikasi AI dan menyelesaikan masalah.
Melacak eksperimen data science membantu peneliti membatalkan perubahan yang tidak sengaja, memilih eksperimen terbaik berdasarkan metrik kinerja, dan berkolaborasi dengan rekan lainnya. Diagram di bawah menunjukkan bagaimana perubahan pada data atau kode memengaruhi metadata dan keluaran model. Melacak perubahan ini juga dapat membantu rekan lainnya menemukan solusi yang lebih baik. Pelajari semua tentang Git di blog terbaru karya Summer Worsley.

Git untuk Proyek Data Science
Kolaborasi dengan GitHub
GitHub adalah platform pengembangan perangkat lunak berbasis cloud. GitHub umum digunakan untuk menyimpan file, melacak perubahan, dan berkolaborasi pada proyek pengembangan. Dalam beberapa tahun terakhir, GitHub menjadi platform sosial paling populer bagi komunitas pengembangan perangkat lunak. Individu dapat berkontribusi pada proyek open-source dan laporan bug, mendiskusikan proyek baru, dan menemukan alat baru.
Data scientist dan machine learning engineer mengikuti jejak pengembang perangkat lunak dan mengintegrasikan alur kerja mereka dengan GitHub. Dengan melakukan ini, mereka dapat membagikan hasil riset, membuka kontribusi komunitas, dan berkolaborasi dengan tim data. Anda dapat menemukan berbagai proyek data science dan machine learning, panduan, tutorial, dan sumber daya di platform ini. Bagi mahasiswa, platform ini menjadi peluang untuk mendapatkan pengalaman kerja dan pada akhirnya meraih pekerjaan di perusahaan bergengsi.
Portofolio
Kebanyakan perekrut teknis akan meminta proyek portofolio atau profil GitHub. Ini membantu mereka menentukan apakah kandidat cocok untuk perusahaan mereka. Sangat disarankan untuk membuat profil GitHub dan memperbaruinya secara berkala. Manajer perekrutan selalu mencari kandidat yang sangat berpengalaman dalam pengembangan perangkat lunak dan berkontribusi pada proyek open-source. Mampu menganalisis portofolio GitHub membantu mereka menyiapkan pertanyaan untuk sesi wawancara teknis.

Profil GitHub
GitHub memungkinkan data scientist memamerkan proyek mereka, dan ini juga dapat dihitung sebagai pengalaman kerja di CV Anda. Menampilkan proyek portofolio juga membuka peluang untuk bekerja sama, meluncurkan startup, dan melakukan riset.

Proyek Portofolio
Fitur
GitHub juga menyediakan berbagai fitur lain yang sama pentingnya dengan menampilkan portofolio. Penting untuk mempelajari setiap fitur agar Anda dapat mengintegrasikannya ke dalam proyek data science Anda.
- Sumber terbuka: GitHub menyediakan ekosistem lengkap untuk proyek open-source. Anda dapat mensponsori maintainer, berkontribusi pada proyek, menggunakan alat open-source dalam proyek yang ada, dan mempromosikan karya Anda.
- Kolaborasi Komunitas: GitHub telah menjadi platform komunitas tempat isu, permintaan fitur, kontribusi kode, dan dokumentasi dapat didiskusikan.
- Explore: Tab GitHub Explore membantu Anda menemukan proyek baru, alat yang sedang tren, dan acara pengembang.
- GitHub Gists: Anda dapat membagikan potongan kode atau menyematkannya di blog atau situs web.
- GitHub CLI: Memungkinkan Anda melakukan merge request, meninjau kode, memeriksa isu, dan memantau progres dari program baris perintah.
- Penyimpanan Gratis: penyimpanan repositori privat dan publik tanpa batas.
- Web hosting: Anda dapat menerbitkan situs portofolio atau dokumentasi. GitHub Pages menyediakan pengalaman membangun dan menerapkan situs web yang mudah.
- Codespace: lingkungan pengembangan cloud yang terintegrasi dengan repositori GitHub Anda.
- Project: alat yang dapat dikustomisasi dan fleksibel untuk merencanakan dan melacak pekerjaan di GitHub.
- Automasi: GitHub Actions mengotomatisasi alur kerja pengembangan seperti build, test, publish, release, dan deployment.
- Sponsor: Anda dapat mendukung proyek atau pengembang open-source favorit dengan membayar biaya bulanan atau satu kali. Ini juga memungkinkan pengembang menggunakan platform pembayaran pihak ketiga seperti ko-fi.
Perintah Dasar
Sebelum kita mulai mengelola proyek data science, mari pelajari perintah Git paling umum yang akan Anda gunakan di setiap proyek data science. Perintah dasar meliputi inisialisasi repositori Git, menyimpan perubahan, memeriksa log, mendorong perubahan ke server remote, dan melakukan merge.
- git init membuat repositori Git di direktori lokal.
- git clone <alamat-repo-remote>: menyalin seluruh repositori dari server remote ke direktori lokal. Anda juga dapat menggunakannya untuk menyalin repositori lokal.
- git add <file.txt>: menambahkan satu file atau beberapa file dan folder ke area staging.
- git commit –m “Pesan”: membuat cuplikan perubahan dan menyimpannya di repositori.
- git config digunakan untuk menetapkan konfigurasi spesifik pengguna seperti email, nama pengguna, dan format file.
- git status menampilkan daftar file yang berubah atau file yang belum di-stage dan di-commit.
- git push <nama-remote> <nama-branch>: mengirim commit lokal ke branch remote dari repositori.
- git checkout -b <nama-branch>: membuat branch baru dan beralih ke branch baru tersebut.
- git remote –v: melihat semua repositori remote.
- git remote add <nama-remote> <host-atau-remoteURL>: menambahkan server remote ke repositori lokal.
- git branch –d <nama-branch>: menghapus branch.
- git pull menggabungkan commit ke direktori lokal dari repositori remote.
- git merge <nama-branch>: setelah menyelesaikan konflik merge, perintah ini menggabungkan branch yang dipilih ke branch saat ini.
- git log menampilkan daftar detail commit untuk branch saat ini.

Pengembangan Lengkap dengan GitHub
Jika Anda tertarik mempelajari lebih banyak perintah, lihat lembar contekan Git oleh GitLab.
Mulai
Di bagian ini, kita akan menggunakan Git untuk melacak sebuah proyek data science dan GitHub sebagai server remote. Kita akan mempelajari cara menginstal Git, membuat dan mengkloning repositori dari GitHub, menjalankan eksperimen machine learning, dan mendorong perubahan (notebook, model, data) ke GitHub menggunakan Windows PowerShell 7.
Menginstal Git
Git mendukung semua sistem operasi. Anda dapat memasangnya menggunakan alat baris perintah atau langsung mengunduh dan memasang setup.
Linux
Untuk sistem operasi berbasis Debian/Ubuntu gunakan `apt-get install git`, dan jika Anda menggunakan sistem berbasis Linux lainnya, lihat daftar lengkap perintah instalasi di sini.
macOS
Jika Anda memasang homebrew, gunakan perintah ini untuk mengunduh dan memasang Git: `brew install git`. Anda juga dapat mengunduh penginstal biner ini dan menjalankan setup.
Windows
Memasang Git di Windows sangat mudah. Cukup buka halaman unduhan, klik versi Windows yang sesuai, lalu unduh dan pasang setup. Jika Anda memiliki alat winget, Anda dapat memasangnya dengan mengetik `winget install --id Git.Git -e --source winget` di PowerShell.
Setelah memasang Git, pastikan Anda telah mengonfigurasi nama pengguna dan email. Informasi ini digunakan untuk menandatangani commit.
git config --global user.name "your-user-name"
git config --global user.email "your@email.com"
Untuk informasi lebih mendalam tentang cara memasang Git, klik di sini.
Inisialisasi Proyek
Jika Anda memiliki akun GitHub, klik tombol + dan pilih repositori baru. Setelah itu, ketik nama repositori dan tambahkan deskripsi singkat. Ini akan membuat repositori publik kosong.

Membuat proyek
Ada banyak cara untuk mengkloning repositori remote ke direktori lokal, dan GitHub menyediakan panduan rinci tentang cara mengkloning, menambahkan remote, dan menginisialisasi proyek Git.

GitHub Clone
Kita dapat dengan mudah mengkloning repositori dengan memberikan tautan HTTPS. Pastikan Anda berada di direktori kerja menggunakan command prompt atau PowerShell.
git clone https://github.com/kingabzpro/DataCamp-Git.git
>>> Cloning into 'DataCamp-Git'...
>>> warning: You appear to have cloned an empty repository.
cd .\DataCamp-Git\
ATAU
Buat direktori baru bernama “DataCamp-Git” dan inisialisasi Git menggunakan perintah sederhana. Setelah itu, tambahkan koneksi ke repositori remote agar Anda dapat menyinkronkan pekerjaan dengan GitHub.
mkdir DataCamp-Git
cd .\DataCamp-Git
git init
>>> Initialized empty Git repository in C:/Repository/GitHub/DataCamp-Git/.git/
git remote add origin https://github.com/kingabzpro/DataCamp-Git.git
ATAU
Jika Anda sudah memiliki proyek di sebuah direktori, cukup inisialisasi Git dengan `git init` dan tambahkan remote GitHub, seperti di atas.
Commit Sederhana
Sebelum kita menambahkan file ke repositori, pastikan Anda berada di direktori lokal yang benar.
Kita akan mulai dengan sederhana dan membuat file README dengan heading DataCamp-Git. Lalu, kita akan menambahkannya ke area staging menggunakan `git add`.
echo "# DataCamp-Git" >> README.md
git add README.md
Status Git menunjukkan bahwa kita berada di branch main dan file `README.md` sudah di-stage dan siap di-commit.
git status
>>> On branch main
>>> No commits yet
>>> Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README.md
Untuk membuat commit pertama, kita akan menggunakan `git commit` dengan sebuah pesan. Seperti terlihat, commit pertama ditambahkan dengan hash ed9c886.
git commit -m "first commit"
>>> [main (root-commit) ed9c886] first commit
>>> 1 file changed, 1 insertion(+)
>>> create mode 100644 README.md
Menambahkan File Proyek
Kita akan menggunakan DataCamp workspace MasterCard Stock Price with LSTM and GRU dan mengunduh file. Penulis proyek telah melakukan prapemrosesan data dan melatih data deret waktu pada model LSTM dan GRU. Pelajari lebih lanjut tentang proyek ini dengan membaca Tutorial Recurrent Neural Network (RNN).
Untuk menyimpan file model, kita menambahkan sel kode baru di notebook Jupyter proyek. Skrip baru akan membuat direktori bernama “model” dan menyimpan kedua model LSTM dan GRU.
!mkdir -p model
model_lstm.save('model/LSTM')
model_gru.save('model/GRU')
Seperti terlihat, repositori Git memiliki folder data yang berisi file CSV, folder model dengan bobot model dan metadata.

Sekarang kita akan men-stage semua file. Anda dapat menambahkan direktori, file, atau data apa pun setelah perintah awal.
git add .\data .\model LSTM_GRU.ipynb RNN.png
ATAU
Jika Anda ingin menambahkan semua file ke area staging, gunakan tanda titik.
git add .
Commit dan Push
Kita akan melakukan commit semua perubahan dengan pesan sederhana, dan keluarannya menunjukkan semua file baru dalam mode create.
git commit -m "project files added"
>>> [main aa3e19a] project files added
>>> 10 files changed, 5020 insertions(+)
>>> create mode 100644 LSTM_GRU.ipynb
>>> create mode 100644 RNN.png
>>> create mode 100644 data/Mastercard_stock_history.csv
>>> create mode 100644 data/Mastercard_stock_info.csv
>>> create mode 100644 model/GRU/saved_model.pb
>>> create mode 100644 model/GRU/variables/variables.data-00000-of-00001
>>> create mode 100644 model/GRU/variables/variables.index
>>> create mode 100644 model/LSTM/saved_model.pb
>>> create mode 100644 model/LSTM/variables/variables.data-00000-of-00001
create mode 100644 model/LSTM/variables/variables.index
Menyinkronkan dengan repositori remote GitHub memerlukan nama remote dan nama branch `git push <nama-remote> <nama-branch>`. Jika Anda hanya memiliki satu remote dan satu branch, maka menggunakan `git push` saja sudah cukup.
Setelah `git push`, jendela pop-up akan meminta kredensial, cukup tambahkan nama pengguna atau kata sandi GitHub Anda. Anda juga dapat membuat Personal access tokens dan menambahkannya sebagai pengganti kata sandi. Pelajari lebih lanjut dengan membaca Tutorial Git Push dan Pull.
git push
>>> Enumerating objects: 21, done.
>>> Counting objects: 100% (21/21), done.
>>> Delta compression using up to 4 threads
>>> Compressing objects: 100% (19/19), done.
>>> Writing objects: 100% (21/21), 1.83 MiB | 1.59 MiB/s, done.
>>> Total 21 (delta 2), reused 0 (delta 0), pack-reused 0
>>> remote: Resolving deltas: 100% (2/2), done.
>>> To https://github.com/kingabzpro/DataCamp-Git.git
>>> * [new branch] main -> main
Kita akan memeriksa repositori GitHub kingabzpro/DataCamp-Git untuk melihat apakah kita berhasil mendorong perubahan ke remote. Repositori GitHub memiliki semua file, data, dan model.

Push remote ke GitHub
Branch Git
Disarankan untuk bekerja dengan branch: misalnya, jika Anda ingin mengerjakan dokumentasi proyek, buat branch dokumentasi menggunakan `git checkout` atau `git branch`. Lakukan perubahan pada file README dan ketika perubahan sudah final, gabungkan branch dengan basisnya.
Dalam kasus kita, kita telah membuat dan beralih ke branch baru bernama `readme`.
git checkout -b readme
Mari sunting file README dengan menambahkan deskripsi proyek dan menautkan workspace RNN DataCamp serta tutorialnya. Setelah itu, kita akan men-stage perubahan dan menyimpan cuplikan perubahan dengan sebuah pesan.
git add README.md
git commit -m "project description and links to blog"
>>> [readme f3b8b9b] project description and links to blog
>>> 1 file changed, 8 insertions(+)
Repositori remote belum memiliki branch readme. Untuk membuat branch baru dan mendorong perubahan, kita akan menggunakan “readme:readme”. Keluaran perintah menunjukkan bahwa branch baru telah dibuat dan kedua branch `readme` lokal dan remote tersinkron.
git push origin readme:readme
>>> remote: Resolving deltas: 100% (1/1), completed with 1 local object.
>>> remote: Create a pull request for 'readme' on GitHub by visiting:
>>> remote: https://github.com/kingabzpro/DataCamp-Git/pull/new/readme
>>> remote:
To https://github.com/kingabzpro/DataCamp-Git.git
>>> * [new branch] readme -> readme
Anda dapat melihat bahwa kita berhasil mendorong branch lokal ke GitHub dengan versi README.md yang telah dimodifikasi.

Branch readme di GitHub
Pull Request
Fungsionalitas ini umum di organisasi. Misalnya, seorang pengembang perangkat lunak telah mengerjakan fitur baru dan ingin menggabungkan perubahan ke branch remote utama. Sekarang kita akan membuat pull request menggunakan GUI GitHub dengan mengklik tombol pull request. Setelah itu, pilih branch readme yang ingin kita gabungkan dengan basis (main). Anda dapat mengetik penjelasan rinci tentang fitur yang ditambahkan dan klik tombol pull request.

Pull request dari readme ke main
Maintainer repositori akan membandingkan perubahan Anda dan menggabungkannya ketika semua pengujian lolos. Dalam kasus kita, Anda adalah maintainer, jadi klik permintaan merge untuk menggabungkan perubahan dengan branch utama.

Merge pull request di GitHub
Selamat, kita telah berhasil membuat pull request dan menggabungkannya dengan branch utama. Anda dapat melihat perubahannya di branch utama di sini.
Jika Anda ingin melihat semua perubahan di dalam repositori git Anda, cukup ketik `git log`, dan Git akan menampilkan perubahan historis pada proyek Anda. Mencatat perubahan dalam proyek data science itu penting, dan Git membantu kita melacak semua perubahan, bahkan dataset besar.

Riwayat Log Git
Kesimpulan
GitOps sangat penting untuk pengembangan aplikasi data. Keterampilan ini telah menjadi keahlian esensial untuk semua jenis pekerjaan TI; bahkan peneliti akademis pun menggunakannya untuk membagikan kode eksperimen kepada audiens yang lebih luas. Di sisi lain, GitHub berperan besar dalam memajukan proyek open-source dengan menyediakan ekosistem pengembangan perangkat lunak gratis untuk semua.
Dalam tutorial ini, kita telah mempelajari tentang Git dan GitHub serta mengapa keduanya penting untuk proyek data science. Tutorial ini juga memperkenalkan perintah dasar Git dan memberikan pengalaman praktik tentang cara melacak perubahan pada data, model, dan kode. Jika Anda tertarik mempelajari lebih lanjut tentang Git, ikuti kursus Introduction to Git di DataCamp. Anda juga dapat mempelajari pentingnya sertifikasi GitHub dan bagaimana hal itu dapat membantu karier Anda.
FAQ Git
Apa itu Git?
Sistem kontrol versi terdistribusi sumber terbuka. Ini memungkinkan pengembang menyimpan, memberi versi, dan memvisualisasikan perubahan dalam sebuah proyek pengembangan. Git mendorong kerja tim yang fleksibel dan alur kerja yang dioptimalkan.
Kepanjangan Git itu apa?
Bukan sebuah akronim. Menurut penciptanya, Linus Torvalds, “Git bisa berarti apa saja, tergantung suasana hati Anda.” Ini adalah gabungan tiga huruf acak yang tidak digunakan oleh perintah UNIX mana pun.
Bagaimana cara mengkloning repositori Git?
Cukup ketik `git clone <alamat repositori remote>` di terminal. Anda dapat mengkloning repositori lokal dan remote. Git mendukung protokol SSH dan HTTPS.
Bagaimana cara menghapus branch di Git?
Untuk menghapus branch lokal, gunakan `git branch -d <nama_branch_lokal>`, dan untuk menghapus branch remote, gunakan `git push <nama_remote> -d <nama_branch_remote>`.
Bagaimana cara berpindah branch di Git?
Beralih ke branch yang ada dengan `git checkout <nama branch>` atau buat dan beralih ke branch baru dengan `git checkout -b <nama branch>`.
Bagaimana cara menginstal Git?
Untuk sistem Linux gunakan `apt-get install git`, dan untuk sistem operasi lainnya lihat git-scm.com.
Apakah Git gratis?
Ya, Git gratis dan sumber terbuka di bawah lisensi GPL-2.0.
Apa itu Git Bash?
Aplikasi Microsoft Windows yang menyediakan utilitas dan pengalaman shell berbasis Unix.
Bagaimana cara membuat branch baru di Git?
Gunakan perintah `git branch <branch-baru> <base-branch>` di terminal. Untuk membuat dan langsung berpindah ke branch baru, gunakan `git checkout -b <nama branch>`.
Apa yang dilakukan git pull?
Perintah ini memperbarui versi lokal dari repositori dari server remote, menyalin semua perubahan dari repositori remote, lalu menggabungkannya dengan direktori lokal. Proses ini sering memerlukan penyelesaian konflik merge.
Bagaimana cara fork repo di Git?
Fork di GitHub adalah proses membuat salinan repositori ke Akun GitHub pengguna dari akun lain. Ini biasanya dilakukan untuk kontribusi komunitas atau kerja tim.
Bagaimana cara mengganti nama branch di Git?
Untuk repositori lokal, caranya sederhana: gunakan `git branch -m <nama-lama> <nama-baru>`. Untuk mengganti nama branch remote, pertama hapus branch lama dengan `git push origin --delete <nama-lama>` lalu dorong branch baru `git push -u origin <nama_baru>`.
Bagaimana cara menghapus repositori Git?
Anda dapat menghapus folder lokal atau menghapus folder .git menggunakan `rm -fr .git`. Untuk GitHub, buka pengaturan repositori, dan di bagian akhir halaman Anda akan melihat opsi hapus.
Bagaimana cara memasang Git di Windows?
Unduh penginstal Windows dari situs dan jalankan setup, yang akan memasang Git Bash, Git CDM, dan Git GUI.
Bagaimana cara membatalkan commit di Git?
Gunakan `git revert <commit sha>` yang memerlukan kode hash unik dari commit sebelumnya. Anda juga dapat menggunakan `git revert HEAD~2`, yang berarti dua commit sebelum head.
