Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure DevOps Hizmetleri | Azure DevOps Server | Azure DevOps Server 2022
Kaynak dosyalar için Git, bağımlılıklar için Azure Artifacts ve sık değişen büyük ikili dosyalar için Git LFS kullanın. Deponuz zaten büyük dosyalar içeriyorsa, bu makale Git'te neleri tutabileceğinize, neleri taşıyabileceğinize ve geçmişe ait ikili dosyaların ne zaman kaldırılacağına karar vermenize yardımcı olur.
Her dosyanın nerede depolandığına karar verme
Zaten bir depoda bulunan dosyalarla ne yapacağınıza karar verirseniz buradan başlayın:
- Kaynak dosyaları, betikleri ve metin dosyalarını Git'te tutun.
- Bağımlılıkları ve yeniden kullanılabilir paketleri Azure Artifacts paket yönetimine taşıyın.
- Git LFS'i sık değişen ve iyi fark etmeyen büyük ikili dosyalar için kullanın.
- Depoya zaten eklenmiş ve artık orada bulunmaması gereken büyük ikili dosyaları depo geçmişinden kaldırın. Bkz. Depodan büyük dosyaları kaldırma.
Deponuz zaten büyükse bir depolama yaklaşımı seçmeden önce depoyu ve gönderme sınırlarını gözden geçirin. Bkz. Büyük depoları etkileyen dosya, gönderme ve yol sınırları için Git sınırları.
Git, paket yönetimi ve Git LFS için doğru depolama seçeneğini belirleyin
En uygunu seçmek için bu tabloyu kullanın.
| Dosya türü veya senaryo | Use |
|---|---|
| Kaynak kodu, betikler ve metin dosyaları | Git |
| Bağımlılıklar ve yeniden kullanılabilir paketler | Azure Artifacts paket yönetimi |
| Sık değişen büyük ikili dosyalar | Git LFS |
| Azure DevOps Server Git LFS ve Kerberos | Bu makaledeki Kerberos kılavuzuna ve sonundaki bağlantılı makaleye bakın |
Git, metin tabanlı kaynak dosyalar ve küçük, okunabilir artışlarla değişen diğer içerikler için en iyi şekilde çalışır.
Büyük ikili dosyalar normal Git depolama için uygun değildir çünkü:
- Git kaynak kodu, betikler ve metin dosyaları için sürüm farklılıklarını verimli bir şekilde depolar.
- Sürümler arasında tamamen değişen büyük dosyalar verimli biçimde sıkıştırılamaz veya farkları verimli biçimde çıkarılamaz.
- Büyük ikili dosyalar clone, fetch, branch ve checkout sürelerini artırır.
Deponuza ikili dosyalar gibi büyük, fark edilemeyen dosyalar eklerseniz, deponuzda her değişiklik yaptığınız her seferde bu dosyaların tam bir kopyasını saklarsınız. Deponuzda bu dosyaların birçok sürümü varsa kodunuzu kullanıma alma, dallama, getirme ve kopyalama süresini önemli ölçüde artırır.
Hangi dosyalar Git'e aittir?
Dosya türüne ve ne sıklıkta değiştiğine uyan en basit seçeneği kullanın.
Kaynak kodu bağımlılıklarda değil Git'te tutma
Ekibinizin doğrudan düzenlediği dosyalar için Git'i kullanın. Bağımlılıkları depodan uzak tutun ve paket yönetimi aracılığıyla teslim edin.
- Kaynak dosyaları Git'e yerleştirin.
- DLL'leri, kitaplık dosyalarını ve depo dışındaki diğer bağımlılıkları depolayın.
- Bağımlılıkları sürüm ve dağıtım için paket yönetimini kullanın.
Paket yönetimi bağımlılıklarınızı paketler ve paketi dağıttığınızda dosyaları sisteminize yükler. Paketler, ortamlar aynı yüklü paketlere sahip olduğu sürece bir ortamda test edilen kodun başka bir ortamda aynı şekilde çalıştığından emin olmak için sürümlenir.
Derleme çıktılarını commit etmeyin.
Git'i derleme çıkışı veya test yapıtları için değil, kaynak için kullanın.
- İkili dosyaları, günlükleri, izleme çıktılarını veya tanılama verilerini depoya eklemeyin.
- İş öğesi izleme veya ekip dosyası paylaşımı aracılığıyla günlükleri ve izleme bilgilerini paylaşın.
Git'te küçük ikili dosyaları depolama
Git'i yalnızca seyrek değişen küçük ikili dosyalar için kullanın.
- Web görüntüleri, simgeler ve diğer küçük resim varlıkları iyi örneklerdir.
- Bu dosyaların Git'te tutulması, ekip için tutarlı bir iş akışını korur.
Önemli
Küçük ikili kodlar bile sık güncellenirse sorunlara neden olabilir. Örneğin, 100 KB ikili dosyada yapılan 100 değişiklik, 1 MB ikili dosyada 10 değişiklik kadar depolama alanı kullanır. Güncelleştirmelerin sıklığı nedeniyle, küçük ikili dosya büyük ikili dosyadan daha sık dallanma performansını yavaşlatır.
Büyük ve sık güncelleştirilen ikili varlıklardan kaçının
Bu dosyalar genellikle sürümler arasında değiştiği ve genellikle zaten sıkıştırılmış olduğundan Git büyük ikili dosyaları verimli bir şekilde depolayamaz.
- Git, her sürümün tam içeriğini depolar.
- Depo boyutu zaman içinde büyür.
- Klonlama, dallanma, getirme ve dal değiştirme işlemleri yavaşlar.
Git'in her sürümün tam içeriğini depolaması gerektiğinden, farklandırma ve sıkıştırma çok işe yaramaz. Bu dosyalar biriktikçe depo büyür, dallanma yavaşlar ve kopyalama süreleri artar.
Büyük ikili kaynak dosyaları için stratejiler
- Sıkıştırılmış arşivleri işlemeyin. Bunun yerine verilerin sıkıştırmasını kaldırın ve fark edilebilir kaynakları işleyin.
- Derlenmiş kodu ve diğer ikili bağımlılıkları işlemekten kaçının. Bunları oluşturun veya paket yönetimi aracılığıyla sağlayın.
- Yapılandırmayı ve diğer yapılandırılmış verileri JSON gibi fark edilebilir düz metin biçimlerinde depolayın.
Git Büyük Dosya Depolama (Git LFS) nedir?
Sürümler arasında çok sık değişen ve önemli ölçüde farklılık gösteren kaynak dosyalar için Git Büyük Dosya Depolama (LFS) kullanın.
Git LFS:
- Deponuzda tam dosya içeriği yerine büyük dosyalara yönelik işaretçileri depolar.
- İkili içeriği ayrı bir uzak depolama alanında depolar.
- Dalları kopyaladığınızda veya değiştirdiğinizde doğru sürümü indirir.
- Her kopya ve dal değişikliğinde tam dosya içeriğini taşımadan büyük ikili dosyalar için normal Git iş akışınızı korur.
Git LFS avantajları
Git LFS, büyük dosya içeriğini ana depodan taşırken Git iş akışını korur.
- Ekibiniz aynı uçtan uca Git iş akışını kullanmaya devam edebilir.
- Büyük dosyalar ana depo geçmişinden uzak kalır ve bu da deponun yönetilebilir kalmasına yardımcı olur.
- Dosya kilitleme videolar, sesler ve oyun haritaları gibi büyük, fark edilemeyen varlıklar üzerinde paylaşılan çalışmayı destekler.
Azure DevOps Hizmetleri, Git LFS'i tamamen destekler ve ücretsiz olarak sunar. LFS'yi kullanmak için Git LFS istemcisini yükleyin, LFS'de depolamak istediğiniz dosyalar için izlemeyi yapılandırın ve değişikliklerinizi Azure Repos gönderebilirsiniz.
Azure DevOps Server ve Kerberos'a özgü yönergeler için bkz. Kerberos ve Git LFS.
Git LFS sınırlamaları
Git LFS için hâlâ önceden planlanması gereken birkaç ödün vardır:
- Her Git istemcisiNin Git LFS istemcisini yüklemesi ve izleme yapılandırmasını anlaması gerekir.
- İstemci yüklenmemiş veya doğru yapılandırılmamışsa, klonlamalar ikili dosyanın kendisi yerine işaretçi verilerini indirir.
- Git, ikili dosyanın farklı sürümlerini birleştiremediğinden, ekip arkadaşlarının yine de değişiklikleri koordine etmek zorunda olması gerekir.
- Git LFS dosya kilitleme sağlar, ancak kullanıcıların çalışmaya başlamadan önce yine de en son kopyayı çekmeleri gerekir.
- Azure Repos, Git LFS izlenen dosyaları olan depolar için Secure Shell'i (SSH) desteklemez.
- Web arayüzüne bir ikili dosya sürüklemek, LFS işaretçisini değil, ikili dosyanın kendisini repoya commit eder.
- Büyük yüklemeler, kullanılabilir boş alan, mevcut iş yükü ve bir saatlik yükleme sınırı tarafından sınırlandırılabilir.
Git LFS dosya biçimi
Git LFS izlenen dosyası için deponuza yazdığınız dosyanın her satırda anahtar/değer çifti olan birkaç satırı vardır:
version https://git-lfs.github.com/spec/v1
oid a747cfbbef63fc0a3f5ffca332ae486ee7bf77c1d1b9b2de02e261ef97d085fe
size 4923023
Uyarı
- Sürüm değeri için eklenen GitHub URL'si yalnızca LFS işaretçisi dosya türünü tanımlar. Bu, ikili dosyanızın bir bağlantısı değildir.
- Azure DevOps Server ile 2.10.0'dan önceki Git LFS için Kerberos kimlik doğrulamasını kullanmak için Git LFS 2.10.0 veya sonraki bir sürümüne yükseltin. Geçerli yönergeler için bkz. Kerberos ve Git LFS ve NTLM yerine Kerberos kullanmak için Azure DevOps Server yeniden yapılandırma.
Azure DevOps Server ve Kerberos için planlama
Azure DevOps Server ve Windows Kimlik Doğrulaması kullanıyorsanız Git LFS kullanırken Kerberos için planlayın. Git LFS 2.10.0 ve üzeri Kerberos kimlik doğrulamayı destekler.
Eski Azure DevOps Server kılavuzunu güncelleştirmeniz gerekiyorsa Kerberos ve Git LFS ile ve bağlantılı Azure DevOps Server kimlik doğrulaması kılavuzuyla başlayın.