Kursus
Saat bekerja dengan Git, menjaga repositori tetap bersih dan teratur bukan sekadar praktik terbaik—itu penting untuk kolaborasi yang lancar dan pengendalian versi yang efisien. Di sinilah .gitignore berperan. File praktis ini memberi tahu Git file mana yang harus diabaikan, mencegah kekacauan yang tidak perlu dan membuat commit Anda fokus pada hal yang benar-benar penting.
Tanpa .gitignore, repo Anda bisa cepat dipenuhi file sementara, log, dan hal lain yang tidak semestinya berada dalam version control. Lebih buruk lagi, Anda bisa tanpa sengaja membagikan informasi sensitif.
Dalam tutorial ini, Anda akan mempelajari cara membuat dan menggunakan file .gitignore untuk menjaga proyek tetap rapi, menghindari jebakan umum, dan bekerja lebih efektif dengan Git. Mari mulai!
Apa itu File .gitignore?
File .gitignore adalah file konfigurasi yang digunakan di Git untuk memberi instruksi sistem pengendalian versi mengenai file atau direktori mana yang harus diabaikan saat perubahan di-stage atau di-commit.
File ini mencegah file yang tidak perlu—seperti file sementara, yang dihasilkan sistem, atau terkait build—mengotori repositori Anda. Menjaga repositori tetap bersih memudahkan kolaborasi dan memastikan hanya file esensial yang dilacak.
File .gitignore adalah file teks sederhana yang ditempatkan di direktori root repositori Git Anda. Isinya berupa pola yang memberi tahu Git file atau direktori mana yang harus diabaikan. Pola ini dapat disesuaikan dengan kebutuhan proyek Anda, membantu Anda mempertahankan repositori yang tertata baik.
Baru mengenal Git dan GitHub? Dapatkan pengantar ramah pemula tentang version control melalui tutorial GitHub dan Git ini.
Berikut beberapa kategori file dan direktori umum yang sebaiknya Anda abaikan:
- Artefak build: File yang dihasilkan selama proses build dan dapat dibuat ulang dari kode sumber, seperti:
dist/,build/(Output build frontend dan backend)target/(Build Java dan bahasa terkompilasi lainnya)- Dependensi: Sistem manajemen paket membuat direktori untuk pustaka yang terinstal, yang tidak boleh dilacak:
node_modules/(Node.js)vendor/(PHP, Composer).venv/,venv/(Lingkungan virtual Python)- File spesifik sistem: File ini dibuat otomatis oleh sistem operasi dan tidak berkontribusi pada proyek:
.DS_Store(macOS)Thumbs.db(Windows)- File konfigurasi IDE: Setiap pengembang mungkin menggunakan lingkungan pengembangan yang berbeda, jadi pengaturan pribadi mereka tidak boleh disertakan dalam version control:
.vscode/(VS Code).idea/(IDE JetBrains).project,.settings/(Eclipse)- Log dan file sementara: Log, cache, dan file sementara harus diabaikan untuk mencegah kekacauan yang tidak perlu:
*.log,npm-debug.log*,yarn-debug.log*,yarn-error.log*(Log dari berbagai alat)*.tmp,*.bak(File sementara dan cadangan).mypy_cache/,__pycache__/(Cache Python).ipynb_checkpoints/(Checkpoint Jupyter Notebook)- File environment dan rahasia: Kredensial sensitif dan konfigurasi khusus environment tidak boleh di-commit:
.env,.env.local,.env.development,.env.productionsecrets.json,config.json(File konfigurasi sensitif)- File basis data dan penyimpanan: Ini dibuat secara lokal dan tidak boleh disertakan dalam version control:
*.sqlite,*.sqlite3,*.db(File basis data SQLite)dump.rdb(Dump basis data Redis)- File CI/CD dan cakupan: Laporan cakupan pengujian dan artefak CI/CD lainnya harus diabaikan:
coverage/,*.lcov(Laporan cakupan kode).tox/,.pytest_cache/(File pengujian Python)
Perlu memasang Git? Ikuti panduan langkah demi langkah di tutorial instalasi Git ini untuk menyiapkannya dengan cepat.
Sintaks .gitignore
Seperti disebutkan, file .gitignore berisi pola yang dicocokkan dengan nama file di repositori Anda untuk menentukan apakah file tersebut harus diabaikan atau tidak.
Sintaks dasar
Pada dasarnya, file .gitignore terdiri dari baris-baris, masing-masing mewakili pola yang akan diabaikan. Pola dapat mencocokkan:
- File tertentu
- Jenis file
- Direktori
File ini juga mendukung komentar, yang dapat ditambahkan dengan memulai baris dengan #, serta baris kosong untuk meningkatkan keterbacaan.
Berikut gambaran struktur dasarnya:
- Abaikan file tertentu: Anda dapat mencantumkan nama file secara langsung untuk mengabaikannya.
secrets.txt
- Abaikan seluruh direktori: Dengan menambahkan
/di akhir nama direktori, Anda dapat mengabaikan semua yang ada di dalam direktori tersebut.
logs/
- Abaikan semua file dari jenis tertentu: Wildcard (
*) dapat digunakan untuk mengabaikan semua file dengan ekstensi tertentu.
*.py
- Negasi: Anda dapat menggunakan
!untuk menegasikan pola dan secara eksplisit melacak file atau direktori tertentu yang sebaliknya akan diabaikan.
*.txt # Ignores all .txt files
!readme.txt # Except for readme.txt
Cara Membuat dan Menggunakan File .gitignore
Membuat dan menggunakan .gitignore cukup mudah. Pada bagian ini, saya akan membahas langkah-langkahnya.
Membuat file .gitignore
Langkah 1: Masuk ke root repositori Anda. File .gitignore biasanya ditempatkan di direktori root proyek Git. Buka terminal atau command line dan masuk ke direktori root repositori Git Anda:
cd /path/to/your/repo
Langkah 2: Buat file .gitignore. Setelah berada di direktori root, buat file .gitignore menggunakan editor teks apa pun atau dengan menjalankan perintah di terminal, seperti:
touch .gitignore
Langkah 3: Tambahkan pola ke file. Buka file .gitignore di editor teks dan tambahkan pola yang diperlukan untuk mengabaikan file atau direktori. Setiap baris mewakili pola yang berbeda.
Berikut contoh file .gitignore yang umum digunakan di proyek dasar:
# Ignore node_modules and dependency directories
node_modules/
vendor/
# Ignore build artifacts
dist/
build/
*.log
# Ignore system-generated files
.DS_Store
Thumbs.db
# Ignore environment and secret files
.env
config.json
Setelah Anda menambahkan pola yang diperlukan, simpan file tersebut. Git kini akan otomatis mengabaikan file-file ini saat men-stage atau melakukan commit perubahan.
Langkah 4: Commit file ke repositori. Penting untuk melakukan commit pada file .gitignore ke repositori agar semua kolaborator menggunakan aturan pengabaian yang sama. Ini memastikan konsistensi di seluruh proyek bagi semua yang terlibat.
git add .gitignore
git commit -m "Add .gitignore file"
git push
Setelah file .gitignore di-commit, Anda menetapkan aturan pengabaian bersama untuk seluruh tim.
Ingin menguasai push dan pull di Git? Pelajari cara menyinkronkan pekerjaan Anda dengan repositori jarak jauh di tutorial push dan pull Git ini.
Praktik Terbaik dalam Menggunakan .gitignore
Meskipun membuat file .gitignore adalah bagian yang mudah dalam menjaga repositori Git tetap bersih, ada beberapa praktik terbaik yang harus diikuti agar file ini dikelola secara efektif dari waktu ke waktu.
Gunakan .gitignore global
Bagi pengembang yang bekerja di banyak proyek, ada file tertentu yang mungkin ingin Anda kecualikan dari setiap repositori, apa pun jenis proyeknya.
Alih-alih menambahkannya ke file .gitignore setiap proyek, Anda dapat mengonfigurasi .gitignore global yang berlaku untuk semua repositori di sistem Anda.
Untuk mengonfigurasi file .gitignore global:
- Buat file
.gitignore_global:
touch ~/.gitignore_global
- Tambahkan pola untuk file yang ingin Anda abaikan secara global, misalnya:
.DS_Store
*.log
/.vscode/
/.idea/
- Atur Git untuk menggunakan
.gitignoreglobal:
git config --global core.excludesfile ~/.gitignore_global
Manfaatkan templat yang sudah ada
Alih-alih membuat file .gitignore dari nol untuk setiap proyek baru, Anda dapat memanfaatkan templat .gitignore pra-konfigurasi untuk bahasa, kerangka kerja, atau environment tertentu.
Salah satu sumber terbaik untuk templat tersebut adalah repositori .gitignore resmi GitHub, di mana Anda dapat menemukan file .gitignore yang disesuaikan untuk ratusan bahasa pemrograman dan kerangka kerja.
Tinjau .gitignore secara berkala
Seiring perkembangan proyek, mungkin ada file dan direktori baru yang perlu dimasukkan ke file .gitignore. Penting untuk meninjau dan memperbarui file Anda secara berkala agar mencerminkan keadaan proyek saat ini.
Beberapa skenario ketika Anda mungkin perlu memperbarui file .gitignore meliputi:
- Mengadopsi alat atau pustaka baru yang menghasilkan file tambahan (misalnya, beralih ke sistem build baru).
- Refaktor atau reorganisasi direktori, yang dapat menghasilkan file baru yang harus dikecualikan.
- Menghapus file atau direktori usang yang bukan lagi bagian dari proyek.
Pemecahan Masalah .gitignore
Bahkan setelah menyiapkan file .gitignore, Anda mungkin menemui skenario di mana file tertentu masih dilacak, atau polanya tidak berfungsi seperti yang diharapkan. Bagian ini membahas dua area pemecahan masalah umum dan cara mengatasinya.
Melacak file yang sudah di-commit
File .gitignore tidak berlaku surut untuk file yang sudah di-commit.
Jika Anda menambahkan pola ke .gitignore setelah file tertentu sudah di-commit, Git akan terus melacaknya meskipun file tersebut cocok dengan pola di file .gitignore.
Untuk berhenti melacak file yang sudah di-commit, ikuti langkah-langkah berikut:
- Hapus file dari pelacakan Git: Gunakan perintah
git rmuntuk menghapusnya dari repositori sambil tetap menyimpannya di working directory Anda.
git rm --cached <file_or_directory_name>
- Commit perubahan: Setelah menghapus file dari pelacakan Git, lakukan commit perubahan untuk memastikan file tersebut tidak lagi menjadi bagian dari riwayat version control.
git commit -m "Stop tracking ignored files"
- Push perubahan ke repositori jarak jauh: Terakhir, push perubahan ke repositori jarak jauh untuk memastikan file tersebut tidak lagi dilacak.
git push
Setelah melakukan langkah-langkah ini, Git akan berhenti melacak file tersebut. File yang telah di-commit akan tetap ada di working directory Anda tetapi akan diabaikan oleh commit selanjutnya berdasarkan pola .gitignore Anda.
Pastikan pola berfungsi
Terkadang, Anda mungkin melihat file tertentu yang Anda harapkan untuk diabaikan tetap muncul di status Git atau masih dilacak.
Ikuti langkah-langkah berikut untuk memastikan pola .gitignore Anda berfungsi dengan benar:
- Periksa status file Anda: Gunakan perintah
git statusuntuk melihat file mana yang sedang dilacak oleh Git. Ini akan membantu Anda memverifikasi apakah file yang diabaikan masih terdaftar.
git status
- Pastikan polanya benar: Periksa kembali sintaks pola
.gitignoreAnda untuk memastikan formatnya benar. Misalnya: - Pastikan Anda menggunakan path direktori yang benar (relatif terhadap root repositori).
- Tambahkan
/untuk menargetkan direktori tertentu guna mencegah pelacakan semua file dengan nama serupa.
- Segarkan cache: Jika Anda baru saja memperbarui file
.gitignoredan perubahannya belum diterapkan, Git mungkin masih menyimpan cache sebelumnya. Untuk menyegarkan cache, jalankan perintah berikut:
git rm -r --cached .
git add .
git commit -m "Refresh .gitignore"
- Periksa pengecualian: Terkadang, pola tertentu di
.gitignoredapat ditimpa oleh pola yang lebih spesifik di tempat lain dalam file. Tinjau aturan Anda untuk memastikan tidak ada pola yang bertentangan.
Mencari referensi Git cepat? Simpan perintah penting di ujung jari Anda dengan lembar contekan Git ini.
Kesimpulan
File .gitignore mungkin terlihat kecil, tetapi berperan besar dalam menjaga repositori Git Anda tetap bersih dan mudah dikelola. Dengan mengabaikan file yang tidak perlu—seperti dependensi, artefak build, dan file yang dihasilkan sistem—Anda memastikan proyek tetap teratur dan bebas dari kekacauan.
Dalam tutorial ini, Anda telah mempelajari cara membuat file .gitignore, menambahkan pola, dan menerapkan praktik terbaik untuk menjaga repo tetap efisien. Dengan keterampilan ini, Anda akan menghindari sakit kepala seputar version control dan membuat kolaborasi lebih lancar bagi semua anggota tim.
Jika Anda ingin memperdalam keterampilan Git, lihat Git Fundamentals untuk jalur belajar terstruktur. Anda juga dapat menjelajahi kursus praktik seperti Foundations of Git dan Introduction to GitHub Concepts untuk membangun pemahaman yang kuat tentang version control dan alur kerja kolaborasi!
FAQs
Apakah .gitignore menghapus file yang sudah dilacak oleh Git?
Tidak, .gitignore hanya mencegah file baru dilacak. Jika sebuah file sudah ada dalam version control, menambahkannya ke .gitignore tidak akan menghapusnya. Untuk berhenti melacak file yang sudah di-commit, Anda perlu menggunakan:
git rm --cached filename
Lalu, lakukan commit perubahan.
Bisakah saya memiliki beberapa file .gitignore dalam satu proyek?
Ya! Anda dapat menempatkan file .gitignore di berbagai direktori dalam proyek Anda. Masing-masing hanya berlaku untuk file di direktori tersebut dan subdirektorinya.
Bagaimana cara mengabaikan semua file dengan jenis tertentu?
Anda dapat menggunakan wildcard. Misalnya, untuk mengabaikan semua file .log:
*.log
Ini akan mengecualikan semua file dengan ekstensi .log.
Bisakah saya mengabaikan file tertentu tetapi tetap melacaknya untuk pekerjaan saya sendiri?
Ya, tetapi Anda harus memastikan secara manual agar file tersebut tidak ter-commit. Salah satu caranya adalah menggunakan git update-index --assume-unchanged filename, sebagai solusi sementara. Pendekatan yang lebih baik adalah menggunakan file .gitignore global (lihat pertanyaan berikutnya).
Apa itu file .gitignore global, dan bagaimana cara menyiapkannya?
File .gitignore global digunakan untuk mengabaikan file di semua repositori pada mesin Anda. Ini berguna untuk file spesifik sistem seperti .DS_Store atau Thumbs.db. Untuk membuat dan mengonfigurasi .gitignore global:
git config --global core.excludesfile ~/.gitignore_global
Lalu, tambahkan pola ke ~/.gitignore_global sesuai kebutuhan.
Mengapa file .gitignore saya tidak berfungsi?
Jika .gitignore tidak mengabaikan sebuah file, periksa beberapa masalah umum berikut:
- File tersebut sudah dilacak—Anda perlu menghapusnya menggunakan
git rm --cached filename. - Pola
.gitignoremungkin salah—periksa kembali sintaks Anda. - Ada aturan yang bertentangan—Git menerapkan aturan yang cocok terakhir, jadi urutan itu penting.
Bisakah saya mengabaikan sebuah direktori tetapi menyimpan file tertentu di dalamnya?
Ya! Gunakan aturan pengecualian. Misalnya, untuk mengabaikan semua isi folder kecuali keepme.txt:
folder_name/*
!folder_name/keepme.txtApa yang terjadi jika dua anggota tim memiliki file .gitignore yang berbeda?
Jika .gitignore di-commit ke repositori, semua anggota tim akan mengikuti aturan yang sama. Namun, jika seseorang mengubah .gitignore secara lokal tetapi tidak melakukan commit perubahannya, ia mungkin memiliki file yang diabaikan berbeda. Sebaiknya .gitignore diberi versi dan disepakati oleh tim.
Bagaimana saya dapat memeriksa file mana yang diabaikan?
Jalankan perintah berikut untuk melihat apa yang dikecualikan oleh .gitignore:
git status --ignored
Atau, untuk daftar yang lebih detail:
git check-ignore -v filename
Bisakah saya membatalkan pengabaian sebuah file di .gitignore?
Ya! Hapus file dari .gitignore lalu lacak kembali menggunakan:
git add filename
Lalu, lakukan commit perubahan.

