Ana Sayfa

Git Repolarını Senkronize Etmenin En Basit Yolu

1 dk okuma

Yazar, kişisel Git depolarını (dotfile'lar, metin genişletme makroları, terminal renk şemaları gibi) cihazları arasında senkronize etme ihtiyacını ele alıyor. Uzun süre GitHub'ı bir senkronizasyon katmanı olarak kullanmış olsa da, bulut hizmetlerine olan bağımlılığını azaltma ve özellikle ABD merkezli hizmetlerden uzaklaşma isteğiyle alternatifler aramaya başlamış. GitHub'ın ve benzeri platformların (GitLab, Gitea, Codeberg gibi) sunduğu birçok özelliğe ihtiyacı olmadığını, sadece dosyalarını senkronize tutmak istediğini belirtiyor. Bu arayış sonucunda, Git'in çalışma prensiplerini düşünerek çok daha basit bir yöntem keşfettiğini ifade ediyor.

Git depolarının aslında sadece bir dosya koleksiyonu olduğunu, tüm depo durumunu içeren .git klasörüyle birlikte var olduğunu açıklıyor. Bu .git klasörünü kopyalamanın bir depoyu çoğaltmak anlamına geldiğini belirtiyor. cp veya rsync gibi temel araçlarla tek seferlik kopyalama yapılabilse de, farklı cihazlardan gelen değişiklikleri birleştiremedikleri için düzenli senkronizasyon için uygun olmadıklarını vurguluyor. Git'in yerleşik push ve pull komutlarının ise bu durumu daha akıllıca yönettiğini, geçmişi karşılaştırıp değişiklikleri güvenli bir şekilde birleştirebildiğini anlatıyor. Yazar, uzak konumun bir bulut hizmeti olmak zorunda olmadığını, yerel diskteki bir klasörün de aynı işlevi görebileceğini fark etmenin tüm ihtiyacını karşıladığını belirtiyor.

Makale ayrıca "bare" ve "non-bare" depolar arasındaki farkı açıklıyor. Günlük çalışmalarda kullanılan "non-bare" depoların, görülebilen ve düzenlenebilen bir "çalışma dizini"ne sahip olduğunu ve .git klasörünün bu dizinin altında yer aldığını belirtiyor. Buna karşılık, "bare" bir depo sadece .git klasöründen oluşur ve çalışma dizini yoktur. Git'in "non-bare" bir depoya push yapılmasına izin vermediğini, bunun çalışma dizini ile .git klasörü arasındaki senkronizasyon bozukluklarını önlemek için olduğunu ekliyor. Bu basit yaklaşım, yazarın bulut bağımlılığını azaltma hedefine ulaşmasına yardımcı oluyor.

İçgörü

Git depolarını senkronize etmek için karmaşık bulut hizmetleri yerine, Git'in temel prensiplerini kullanarak yerel disk üzerinde basit ve etkili bir çözüm oluşturulabilir.

Kaynak