Saya ingin mengabaikan semua file di repositori saya kecuali yang terjadi di bin
subdirektori. Saya mencoba menambahkan yang berikut ini ke .gitignore
:
*
!bin/*
Ini tidak memiliki efek yang diinginkan, namun: Saya membuat file baru di dalamnya bin/
, tetapi melakukan git status
masih menunjukkan nothing to commit (working directory clean)
.
Ada saran?
Jawaban:
Ini mengabaikan file-file root & direktori-direktori root, kemudian membatalkan-mengabaikan direktori root bin:
Dengan cara ini Anda mendapatkan semua direktori bin, termasuk subdirektori dan file-file mereka.
sumber
/stuff/
dan!/stuff/specific/
, tetapi masih mengabaikan / barang / spesifik /git check-ignore -v
mengatakan kepada saya itu karena~/.gitignore
!/bin/
ke.gitignore
file root saya , tetapi kemudian saya harus menambahkan/bin/.gitignore
file dengan!*
... Membuat hanya satu dari perubahan itu tidak berfungsi. Ini hanya berfungsi setelah menggabungkan kedua perubahan.Di sini cara mengabaikan semuanya kecuali satu direktori " MY_SUPER_DUPER_TEMPLATE_directory " di beberapa direktori
Struktur: / bitrix / templates / MY_SUPER_DUPER_TEMPLATE_directory
sumber
Anda harus mengecualikan semuanya dalam perjalanan ke tujuan, tetapi Anda harus menyertakan tujuan:
Catatan: Ini adalah file pengecualian (mis. Gitignore) sehingga logikanya terbalik. Abaikan semua, kecuali direktori tsp, abaikan semua di direktori tsp, kecuali direktori src ...
sumber
Satu-satunya masalah yang Anda miliki adalah bahwa
bin
direktori itu sendiri tidak cocok denganbin/*
pola sehingga git bahkan tidak mencari dibin
direktori.Ada dua solusi yang muncul dalam pikiran.
.gitignore
:atau
.gitignore
:bin/.gitignore
:Saya lebih suka solusi kedua karena solusi pertama tidak akan berhenti mengabaikan file di
bin
direktori yang ada di subdirektori yang tidak dipanggilbin
. Ini mungkin atau mungkin tidak masalah dalam situasi Anda.sumber
# Ignore everything * # But not these files... !/wp-content/ !/wp-content/plugins/ !/wp-content/plugins/my_plugin/ !/wp-content/plugins/my_plugin/*
Tidak ada kode blok di komentar?Dari dokumen resmi git , salah satu contoh mengatakan:
Contoh untuk mengecualikan semuanya kecuali foo / bar direktori tertentu (perhatikan / * - tanpa slash, wildcard juga akan mengecualikan semua dalam foo / bar):
Untuk penjelasan tentang slash utama: Kapan harus menggunakan slash utama di gitignore .
sumber
Coba ikuti di versi GIT terbaru.
sumber
Saya pikir cara yang lebih baik adalah dengan meletakkan setiap pola ke direktori git teratas dengan memulai pola dengan sebuah slash:
Alih-alih mengabaikan semua file itu hanya akan mengabaikan file tingkat atas, bukan yang ada di direktori yang tidak ingin Anda abaikan.
sumber
Ini
.gitignore
bekerja untuk saya:sumber
coba bug git yang tidak jelas ini.
Semoga bermanfaat :)
Mendukung contoh bug bug git
PS: coba dulu sebelum berkomentar.
sumber
Saya harus melakukan ini baru-baru ini:
Saya tidak yakin mengapa saya perlu dua baris untuk mengecualikan satu folder, tetapi inilah yang bekerja untuk saya dan makro.
sumber