Yennefer
Player [0]
- Mesajlar
- 18
- Tür
- Aksiyon/Macera
Oyun projelerinde versiyon kontrol sistemleri (VCS) kullanılırken yapılan en büyük hata, binary (ikili) dosya varlıklarını (.fbx, .psd, .uasset, .wav) doğrudan standart Git deposuna push etmektir. Bu durum depo boyutunun kısa sürede şişmesine (repository bloat) ve klonlama sürelerinin saatler sürmesine yol açar. Bu sorunu çözmek için Git LFS (Large File Storage) yapılandırması şarttır.
1. Git LFS Kurulumu ve Depo İnisiyalizasyonu
Sisteminizde Git kuruluysa, komut satırı (Terminal / Git Bash) üzerinden LFS eklentisini global olarak aktif edin:
2. .gitattributes Dosyasının Oluşturulması
Proje ana dizininde bir
Örnek .gitattributes Yapılandırması:
3. Motor Spesifik .gitignore Dosyaları
Oyun motorlarının derleme esnasında ürettiği geçici dosyaların (cache, temp, build) depoya yüklenmesini engellemek için proje dizinine
4. Binary Çakışmalarını Önleme: LFS File Locking
3D modeller veya Unreal
5. Sık Karşılaşılan Hatalar ve Çözümleri
S: .gitignore eklememe rağmen Library veya Intermediate klasörü halen commit'lerde görünüyor?
C: Bu klasörler daha önce takip altına alınmış demektir. Git önbelleğini temizlemek için terminalde
S: LFS kotası çabuk doluyor, eski LFS geçmişini nasıl temizleyebilirim?
C: Yerel deponuzdaki eski LFS izlerini silmek için
Versiyon kontrol sistemlerinde yaşadığınız spesifik hatalar veya özel eklenti yapılandırma sorularınız varsa başlık altından iletebilirsiniz.
1. Git LFS Kurulumu ve Depo İnisiyalizasyonu
Sisteminizde Git kuruluysa, komut satırı (Terminal / Git Bash) üzerinden LFS eklentisini global olarak aktif edin:
Kod:
# Git LFS eklentisini sisteme tanıtın
git lfs install
# Oyun projenizin bulunduğu dizinde depoyu başlatın
git init
2. .gitattributes Dosyasının Oluşturulması
Proje ana dizininde bir
.gitattributes dosyası oluşturun. Bu dosya, hangi dosya uzantılarının Git LFS tarafından takibe alınacağını ve ekip çalışmasında dosyaların çakışmasını (merge conflict) önlemek için kilitlenebilir (lockable) olacağını belirler.Örnek .gitattributes Yapılandırması:
Kod:
# --- 3D Model ve Animasyon Varlıkları ---
*.fbx filter=lfs diff=lfs merge=lfs -text lockable
*.obj filter=lfs diff=lfs merge=lfs -text lockable
*.blend filter=lfs diff=lfs merge=lfs -text lockable
*.dae filter=lfs diff=lfs merge=lfs -text lockable
# --- Görsel ve Kaplama Dosyaları ---
*.psd filter=lfs diff=lfs merge=lfs -text lockable
*.png filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.tga filter=lfs diff=lfs merge=lfs -text lockable
*.exr filter=lfs diff=lfs merge=lfs -text
# --- Ses ve Video Dosyaları ---
*.wav filter=lfs diff=lfs merge=lfs -text
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text
*.mp4 filter=lfs diff=lfs merge=lfs -text
# --- Engine Spesifik Binary Varlıklar ---
# Unreal Engine
*.uasset filter=lfs diff=lfs merge=lfs -text lockable
*.umap filter=lfs diff=lfs merge=lfs -text lockable
# Unity
*.unitypackage filter=lfs diff=lfs merge=lfs -text
3. Motor Spesifik .gitignore Dosyaları
Oyun motorlarının derleme esnasında ürettiği geçici dosyaların (cache, temp, build) depoya yüklenmesini engellemek için proje dizinine
.gitignore dosyası eklenmelidir.| Oyun Motoru | Hariç Tutulması Gereken Kritik Klasörler | Sebebi |
|---|---|---|
| Unity | /Library/, /Temp/, /Obj/, /Logs/, /UserSettings/ | Motorun yerel bilgisayarda ürettiği geçici önbellek verileridir, projeyi çalıştırmak için gerekmez. |
| Unreal Engine | /Binaries/, /DerivedDataCache/, /Intermediate/, /Saved/, *.sln | C++ derleme çıktıları ve Shader önbellekleridir; her geliştiricide otomatik yeniden üretilir. |
4. Binary Çakışmalarını Önleme: LFS File Locking
3D modeller veya Unreal
.uasset dosyaları metin tabanlı (text) olmadığı için iki farklı geliştirici aynı dosya üzerinde değişiklik yaparsa Git bu dosyaları "merge" edemez. Bunun önüne geçmek için kilit mekanizması kullanılır:
Kod:
# Bir dosya üzerinde çalışmaya başlamadan önce kilitleyin
git lfs lock "Content/Maps/Level_01.umap"
# Değişiklikleri push ettikten sonra kilidi kaldırın
git lfs unlock "Content/Maps/Level_01.umap"
# Şu an kilitli olan dosyaları listeleyin
git lfs locks
5. Sık Karşılaşılan Hatalar ve Çözümleri
S: .gitignore eklememe rağmen Library veya Intermediate klasörü halen commit'lerde görünüyor?
C: Bu klasörler daha önce takip altına alınmış demektir. Git önbelleğini temizlemek için terminalde
git rm -r --cached . komutunu çalıştırıp ardından git add . yapmanız gerekir.S: LFS kotası çabuk doluyor, eski LFS geçmişini nasıl temizleyebilirim?
C: Yerel deponuzdaki eski LFS izlerini silmek için
git lfs prune komutunu kullanabilirsiniz. Bu işlem sadece yerel depodaki kullanılmayan ağır dosyaları temizler.Versiyon kontrol sistemlerinde yaşadığınız spesifik hatalar veya özel eklenti yapılandırma sorularınız varsa başlık altından iletebilirsiniz.





