Saya memiliki banyak proyek dalam solusi .Net saya. Saya ingin mengecualikan semua folder "bin / Debug" dan "bin / Release" (dan isinya), tetapi masih menyertakan folder "bin" itu sendiri dan semua dll yang terkandung di dalamnya.
.gitignore dengan folder "bin /" mengabaikan "Debug" dan "Release", tetapi juga dll yang ada di folder "bin".
"bin / Debug" atau "bin / Release" dalam file .gitignore tidak mengecualikan direktori, kecuali saya sepenuhnya memenuhi syarat pola abaikan sebagai "Solusi / Proyek / bin / Debug" - yang saya tidak ingin lakukan seperti saya perlu memasukkan pola lengkap ini untuk setiap proyek dalam solusi saya, serta menambahkannya untuk setiap proyek baru yang ditambahkan.
Ada saran?
Jawaban:
Sudahkah Anda mencoba wildcard?
Dengan git versi 1.8.2, Anda juga dapat menggunakan
**
wildcard untuk mencocokkan dengan subdirektori level mana saja:sumber
**
. Harus diperbaiki sekarang. tautanAnda dapat menggunakan .gitignore di tingkat atas untuk mengabaikan semua direktori dalam proyek dengan nama yang sama. Sebagai contoh:
Ini harus segera diperbarui sehingga terlihat ketika Anda melakukan status git. Pastikan direktori ini belum ditambahkan ke git, karena itu akan mengabaikan yang diabaikan.
sumber
$GIT_DIR/.git/info/exclude
file OPs .git rm -rf DirectoryName/
Pertanyaannya adalah tidak bertanya tentang mengabaikan semua subdirektori, tapi aku tidak bisa menemukan di mana saja jawaban, jadi saya akan posting:
*/*
.sumber
git add
mengabaikan direktori dan semua file di semua subdirektori dari direktori itu. Saya telah mencobadirname/
,dirname/*
,dirname/**
,dirname/*/*
, bahkan putus asadirname/*/*/*
,dirname/*/*/*/*
,dirname/*/*/*/*/*
.*/*
mengabaikan semua subdirektori tetapi bukan file dalam direktori saat ini. Untuk mengabaikan subdirektori tertentu adalah penggunaan gitignore normal.dirname
,,dirname/
dandirname/*
semua bekerja untuk saya. Apakah ada sesuatu di direktori itu yang sudah dikomit?.git
direktori di antara upaya,git init
kemudiangit add --all .
(juga mencoba tanpa--all
), menggunakan 1.9.4.msysgit.1. Setiap subdirektori yang tidak kosong di bawah direktori bernama saya ditambahkan ke indeks (diperiksa di TortoiseGit dangit status
). Tidak ada garis yang relevan dalam.gitignore
memulai!
tetapi harus ada konflik. Dipecahkan untuk saat ini dengan menghapus folder selamaadd
. Kira ini adalah sesuatu yang akan membutuhkan penggalian sedikit lebih banyak untuk memberikan informasi yang diperlukan untuk mendiagnosis. Terima kasih telah meyakinkan saya bahwa saya tidak salah mengerti sintaks.Semua jawaban di atas valid, tetapi sesuatu yang saya pikir tidak disebutkan adalah bahwa sekali Anda menambahkan file dari direktori itu ke dalam repo, Anda tidak dapat mengabaikan direktori / subdirektori yang berisi file itu (git akan mengabaikan arahan itu) ).
Untuk mengabaikan file yang sudah ditambahkan jalankan
Jika tidak, Anda harus menghapus semua file dari direktori target repo terlebih dahulu - dan kemudian Anda dapat mengabaikan folder itu.
sumber
Selain meletakkan entri yang benar di file .gitignore Anda, jika Anda mencoba untuk mengabaikan sesuatu yang sudah ditambahkan ke repo, Anda harus melakukan
git rm -r /path/to/dir
dan komit sebelum Anda menambahkan dir ke file .gitignore Anda. Kalau tidak, satu-satunya hal yang akan diabaikan git adalah arahan abaikan Anda.sumber
Satu-satunya cara saya mendapatkan ini untuk bekerja pada mesin saya adalah melakukannya dengan cara ini:
Perhatikan bagaimana Anda harus secara eksplisit mengizinkan konten untuk setiap level yang ingin Anda sertakan. Jadi jika saya memiliki subdirektori 5 tema yang jauh di bawah, saya masih perlu menjelaskannya.
Ini dari komentar @ Yarin di sini: https://stackoverflow.com/a/5250314/1696153
Ini adalah topik yang bermanfaat:
Saya juga mencoba
dan
**/wp-content/themes/**
atau
/wp-content/themes/**/*
Tidak ada yang berhasil untuk saya. Banyak jejak dan kesalahan!
sumber
Untuk mengecualikan konten dan subdirektori:
Untuk mengecualikan semua subdirektori tetapi mengambil konten, tambahkan "/":
sumber
Untuk mengabaikan semua subdirektori, Anda cukup menggunakan:
Ini bekerja pada versi 1.8.2 dari git.
sumber
Cara umum untuk mengabaikan semua subfolder, sambil terus melacak file yang ada di
/bin
direktori adalah dengan menambahkan baris berikut ke file .gitignore proyek Anda:Jika Anda ingin mengabaikan hanya subfolder bernama tertentu, Anda dapat melakukan:
nb. jika
bin
direktori tidak di root proyek Anda (di samping file .gitignore), maka alih-alih misalnya.bin/*/*
Anda mungkin perlupath/to/bin/*/*
sumber