Türkiye'nin Oyun Alemi

Oyun Alemi'nin tam kalbinde yerinizi almak istemez misiniz? Güncel tartışmalara dahil olmak, rehber içeriklere hızlıca erişmek ve güzide topluluğumuzun tüm ayrıcalıklarından faydalanmak için hemen ücretsiz hesabınızı oluşturun.

Unity ve Unreal Engine İçin Git LFS Yapılandırması ve .gitignore Kurulumu

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:

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 MotoruHariç Tutulması Gereken Kritik KlasörlerSebebi
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/, *.slnC++ 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.
 
shape1
shape2
shape3
shape4
shape5
shape6
Geri
Üst