Bagikan melalui


Abaikan perubahan file dengan Git

Layanan Azure DevOps | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Git tidak boleh melacak setiap file dalam proyek Anda. File sementara dari lingkungan pengembangan, output pengujian, dan log Anda adalah semua contoh file yang mungkin tidak perlu dilacak.

Anda dapat menggunakan berbagai mekanisme untuk memberi tahu Git file mana dalam proyek Anda yang tidak dilacak, dan untuk memastikan bahwa Git tidak akan melaporkan perubahan pada file-file tersebut. Untuk file yang tidak dilacak Git, Anda dapat menggunakan .gitignore file atau exclude . Untuk file yang dilacak Git, Anda dapat memberi tahu Git untuk berhenti melacaknya dan mengabaikan perubahan.

Dalam artikel ini, Anda akan mempelajari cara:

  • Abaikan perubahan pada file yang tidak terlaruti dengan menggunakan .gitignore file.
  • Abaikan perubahan pada file yang tidak terlaruti dengan menggunakan exclude file.
  • Berhenti melacak file dan abaikan perubahan dengan menggunakan git update-index perintah .
  • Berhenti melacak file dan abaikan perubahan dengan menggunakan git rm perintah .

Menggunakan file .gitignore

Anda dapat memberi tahu Git untuk tidak melacak file tertentu dalam proyek Anda dengan menambahkan dan mengonfigurasi file .gitignore . Entri dalam .gitignore file hanya berlaku untuk file yang tidak terlaruti. Mereka tidak mencegah Git melaporkan perubahan pada file yang dilacak. File terlacak adalah file yang diterapkan dan ada di rekam jepret Git terakhir.

Setiap baris dalam .gitignore file menentukan pola pencarian file yang relatif terhadap .gitignore jalur file. Sintaks .gitignore fleksibel dan mendukung penggunaan kartubebas untuk menentukan satu atau beberapa file berdasarkan nama, ekstensi, dan jalur. Git cocok .gitignore dengan pola pencarian dengan file di proyek Anda untuk menentukan file mana yang akan diabaikan.

Biasanya, Anda menambahkan .gitignore file ke folder akar proyek Anda. Namun, Anda dapat menambahkan .gitignore file ke folder proyek apa pun untuk memberi tahu Git file mana yang akan diabaikan dalam folder tersebut dan subfoldernya pada kedalaman berlapis apa pun. Untuk beberapa .gitignore file, pola pencarian file yang .gitignore ditentukan file dalam folder lebih diutamakan daripada pola yang .gitignore ditentukan file dalam folder induk.

Anda dapat membuat .gitignore file secara manual dan menambahkan entri pola file ke dalamnya. Atau Anda dapat menghemat waktu dengan mengunduh .gitignore templat untuk lingkungan pengembangan Anda dari repositori gitignore GitHub. Salah satu manfaat menggunakan .gitignore file adalah Anda dapat melakukan perubahan dan membagikannya dengan orang lain.

Catatan

Visual Studio secara otomatis membuat .gitignore file untuk lingkungan pengembangan Visual Studio saat Anda membuat repositori Git.

Visual Studio 2022 menyediakan pengalaman kontrol versi Git melalui menu Git, Perubahan Git, dan menu pintasan di Penjelajah Solusi. Visual Studio 2019 versi 16.8 juga menawarkan antarmuka pengguna Team Explorer Git. Untuk informasi selengkapnya, lihat tab Visual Studio 2019 - Team Explorer .

Di jendela Perubahan Git, klik kanan file yang diubah yang ingin Diabaikan Git, lalu pilih Abaikan item lokal ini atau Abaikan ekstensi ini. Opsi menu tersebut tidak ada untuk file terlacak.

Cuplikan layar opsi menu konteks untuk file yang diubah di jendela Perubahan Git di Visual Studio.

Opsi Abaikan item lokal ini menambahkan entri baru ke .gitignore file, dan menghapus file yang dipilih dari daftar file yang diubah.

Opsi Abaikan ekstensi ini menambahkan entri baru ke .gitignore file, dan menghapus semua file dengan ekstensi yang sama dengan file yang dipilih dari daftar file yang diubah.

Salah satu opsi membuat .gitignore file jika belum ada di folder akar repositori Anda, dan menambahkan entri ke dalamnya.

Mengedit file gitignore

Setiap entri dalam .gitignore file adalah: pola pencarian file yang menentukan file mana yang akan diabaikan, komentar yang dimulai dengan tanda angka (#), atau baris kosong (untuk keterbacaan). Sintaksnya .gitignore fleksibel dan mendukung penggunaan kartubebas untuk menentukan satu atau beberapa file berdasarkan nama, ekstensi, dan jalur. Semua jalur untuk pola pencarian file relatif terhadap .gitignore file.

Berikut adalah beberapa contoh pola pencarian file umum:

# Ignore all files with the specified name.
# Scope is all repo folders.
config.json

# Ignore all files with the specified extension.
# Scope is all repo folders.
*.json

# Add an exception to prevent ignoring a file with the specified name.
# Scope is all repo folders.
!package.json

# Ignore a file with the specified name.
# Scoped to the 'logs' subfolder.
/logs/test.logfile

# Ignore all files with the specified name.
# Scoped to the 'logs' subfolder and all folders beneath it.
/logs/**/test.logfile

# Ignore all files in the 'logs' subfolder.
/logs/

Segera setelah Anda memodifikasi .gitignore file, Git memperbarui daftar file yang diabaikannya.

Catatan

Pengguna Windows harus menggunakan garis miring (/) sebagai pemisah jalur dalam .gitignore file, alih-alih menggunakan garis miring terbalik (\). Semua pengguna harus menambahkan garis miring berikutnya saat menentukan folder.

Menggunakan file .gitignore global

Anda dapat menunjuk .gitignore file sebagai file abaikan global yang berlaku untuk semua repositori Git lokal. Untuk melakukannya, gunakan git config perintah sebagai berikut:

git config core.excludesfile <gitignore file path>

File global .gitignore membantu memastikan bahwa Git tidak menerapkan jenis file tertentu, seperti biner yang dikompilasi, dalam repositori lokal apa pun. Pola pencarian file dalam file khusus .gitignore repo lebih diutamakan daripada pola dalam file global .gitignore .

Menggunakan file pengecualian

Anda juga dapat menambahkan entri untuk pola pencarian file ke exclude file di .git/info/ folder repositori lokal Anda. File ini exclude memungkinkan Git mengetahui file mana yang tidak terlaruti untuk diabaikan. Ini menggunakan sintaks yang sama untuk pola pencarian file sebagai .gitignore file.

Entri dalam exclude file hanya berlaku untuk file yang tidak terlaruti. Mereka tidak mencegah Git melaporkan perubahan pada file yang diterapkan yang sudah dilacaknya. Hanya satu exclude file yang ada per repositori.

Karena Git tidak menerapkan atau mendorong exclude file, Anda dapat menggunakannya dengan aman untuk mengabaikan file di sistem lokal Anda tanpa memengaruhi orang lain.

Menggunakan git update-index untuk mengabaikan perubahan

Terkadang lebih mudah untuk berhenti melacak file repositori lokal untuk sementara waktu dan meminta Git mengabaikan perubahan pada file. Misalnya, Anda mungkin ingin menyesuaikan file pengaturan untuk lingkungan pengembangan Anda tanpa risiko menerapkan perubahan Anda. Untuk melakukannya, Anda dapat menjalankan git update-index perintah dengan skip-worktree bendera:

git update-index --skip-worktree <file path>

Untuk melanjutkan pelacakan, jalankan git update-index perintah dengan --no-skip-worktree bendera .

Atau, Anda dapat menghentikan pelacakan file untuk sementara waktu dan meminta Git mengabaikan perubahan pada file dengan menggunakan git update-index perintah dengan assume-unchanged bendera . Opsi ini kurang efektif daripada skip-worktree bendera, karena operasi Git pull yang mengubah konten file dapat mengembalikan assume-unchanged bendera.

git update-index --assume-unchanged <file path>

Untuk melanjutkan pelacakan, jalankan git update-index perintah dengan --no-assume-unchanged bendera .

Menggunakan git rm untuk mengabaikan perubahan

Entri dalam file .gitignore atau exclude tidak berpengaruh pada file yang sudah dilacak Git. Git melacak file yang sebelumnya Anda lakukan. Untuk menghapus file secara permanen dari rekam jepret Git sehingga Git tidak lagi melacaknya, tetapi tanpa menghapusnya dari sistem file, jalankan perintah berikut:

git rm --cached <file path>
git commit <some message>

Kemudian, gunakan .gitignore entri file atau exclude untuk mencegah Git melaporkan perubahan ke file.

Langkah berikutnya