E-Bülten’e kayıt olun

E-Posta:



Git, Stupid Content Tracker

Git, Stupid Content Tracker

Git, temelde bir yazılım geliştirme aracı. 3 Nisan 2005 yılında Linus Torvalds tarafından başlatılmış, 6 Nisan günü topluluğa duyurulmuştur. İlk kararlı sürümü, 7 ay sonra çıkarılmıştır.

Git, “Global Information Tracker” olarak bilinse de, Linux’un da babası olan Torvalds tarafından “Stupid Content Tracker” olarak nitelendiriyor.

Git üzerinde geliştirdiğiniz projeleri bulut üzerinde barındırabilmeniz için bazı servisler bulunmaktadır. Bunlara örnek olarak, açık ara en popüleri GitHub gösterilebilir. Ücretsiz private depo oluşturmak isteyenlerin tercihi de BitBucket ya da AWS CodeCommit olabilir. “Kendim host etmek istiyorum ancak yönetimi de kolay olsun” derseniz, GitLab kullanabilirsiniz.

Git’in genel kullanımıyla alakalı Git Başlangıç Kitabı yardımcı olacaktır. Bu ipuçlarına daha teknik olacak şekilde örneklerle ayrı bir yazıda değinebiliriz ancak bu yazının konusu, büyük boyuttaki dosyaları Git ile nasıl takip edeceğimiz.

Git ile büyük boyuttaki dosyaları takip etmenin bazı zorlukları vardır. Örneğin; GitHub depo başına 1 GB, tek dosya başına da 100 MB sınır koyduğu için bu boyutları aşan dosyaları takip etmeniz zorlaşabilir. Bu durumda GitHub’a sadece codebase’i gönderip kalan dosyaları da (PDF, video, resim vs olabilir) farklı bir yere gönderebilirsiniz. Farklı bir yer; NAS, Amazon S3, Dropbox, SCP veya SSH ile uzaktaki sunucu vb. olabilir.

Peki, nasıl olacak? Cevap, Git-annex.

 

Git en güzel duyguların aracıdır.

Git-annex kurulumu

Git-annex kurulumuna değinmeden, parametreleri kısa bir örnekle netleştirmeye çalışacağım.

Örneği, varolan bir proje kodlarını GitHub’a, media klasörünü de ağa dâhil olan bir NAS cihazına göre vereceğim. Farklı servisleri belgelendirme sayfasından special remotes kısmından inceleyebilirsiniz.

Git ile takip ettiğiniz proje klasöründe;

  • “git remote add officenas /mnt/medianas — NAS içindeki ilgili klasörün fiziksel yolunu ya da mount ettiyseniz, mount ettiğiniz fiziksel adresi remote url olarak ekliyoruz.
  • “git annex init “nas” ile klasörü takip ettikten sonra “git annex add klasor” ile de klasörü annex’e ekliyoruz. (Klasörü yeni eklediyseniz önce git takip etmeli ve commit yapmalısınız.)
  • “git annex sync” komutuyla senkronizasyonu başlatabilirsiniz.
  • NAS’da git clone ile projeyi çekebilir ya da remote url olarak GitHub adresini verebilirsiniz. “git annex sync” komutu ile senkronizasyonu tamamlayabilirsiniz.
  • Ayrıca “git annex drop filename.ext” ile dosyayı annex’den silebilirsiniz. “git annex get filename.ext” ile tekrar geri getirebilirsiniz.
  • “git annex whereis filename.ext” ile dosyanın nerede olduğunu da görebilirsiniz.

Eğer dosyayı “git rm filename.ext” ile silerseniz, sonrasında “git annex sync” yaptığınızda her yerden silebilirsiniz.

Sormak istediklerinizi lütfen yorum olarak belirtin. Bu arada sevgili Halil’in yazdığı “Geliştirici Adaylarına Tavsiyeler” yazısına da göz atmanızı şiddetle tavsiye ediyorum.

Diğer servisler için ipuçları sayfasına bakabilirsiniz.

Ciao.

Erkan Çakmak

Artistanbul ofisinin unutulmaz "Lead Developer"larından biri olan Ahmet ile 2013-2017 yılları çalıştık. Hipster sakallarıyla ünlenen Erkan'ın en büyük şanssızlığı, o modanın İŞİD ile aynı döneme denk gelmesiydi. Bir Amerikan vize fotoğrafının uğruna gitti o güzelim sakallar, hatırladıkça hâlâ gülüyoruz :).

3 Yorumlar
  • Ali Işıngör
    Yanıtla
    Gönderim11:37, 5 Ağustos 2016

    Sevgili Erkan Çakmak’ın anne tarafından İtalyan olduğunu pek kimse bilmez ama neyse… Yazının sonundaki “Ciao” kelimesinin sebebi hikmeti budur.

  • Gönderim17:29, 6 Ağustos 2016

    Erkan, doğru cevap git-lfs olmalıydı. ☺

  • Gönderim11:29, 20 Ocak 2017

Yorum Yaz

Yorum
İsim
E-Posta
Website