Günümüzde yazılım geliştirme ve kodlama alanına olan ilgi hızla artıyor. Bu ilgiyle birlikte bu alanda kullanılan araçlara olan talep de çok yükseldi. Sonuç olarak, farklı kodlama ve DevOps araçlarının kendi alanlarında en yaygın kullanılan program olma yarışına girdiği oldukça rekabetçi bir ortam oluştu. Git de bu araçlardan biri. Üstüne bir de büyük ölçüde bilgisayar başında yürütülen işlerde uzaktan çalışmanın artık bir norm haline gelmesiyle birlikte, pek çok kişi Git dahil projelerini uzak sunucularda barındırmaya başladı. Siz de bu durumdaysanız ve kendi Git sunucunuzu kurmak istiyorsanız, doğru yerdesiniz.
Bu makalede Git'in tam olarak ne olduğunu ele alacak, artılarını ve eksilerini inceleyecek, ardından kendi Git sunucunuzu barındırmak için hangi gereksinimlere ihtiyaç duyduğunuzu göstereceğim. Hadi başlayalım!
Git nedir?
Git Git, geliştiricilerin ve programcıların projelerini mümkün olduğunca verimli biçimde yönetmesine olanak tanımak amacıyla tasarlanmış bir DevOps aracıdır. Git'in en kritik işlevi, kaynak kodundaki değişiklikleri zaman içinde takip etmektir. Git, ücretsiz ve açık kaynaklıdır ve düzenli güncellemeler almaktadır. Bu durum Git'i dünyanın en erişilebilir ve güvenilir kodlama DevOps araçlarından biri yapıyor. Git'in kurulu olduğu her bilgisayar, tüm dosya değişikliklerinin kendi ayrı geçmişiyle birlikte eksiksiz bir depo dizini olarak işlev görür. Yaklaşık 20 yıllık aktif geliştirme sürecinin ardından ve 30'dan fazla güncellemeyle Git, şu anda 2.40.0 sürümünde çalışıyor; daha fazla güncelleme de yolda. Şimdi Git'i neden kurmak isteyebileceğimizi daha iyi anlamak için kullanım senaryolarına bakalım.
Git Kullanım Senaryoları
Kendi yerel Git sunucunuzu barındırmaya geçmeden önce, neden bir Git sunucusu çalıştırmak isteyeceğimizi anlamak için Git'in temel kullanım senaryolarına kısaca göz atalım.
Depoyu Klonla
Pek çok geliştirici ve kodlayıcı, takip etmek istedikleri program ve dosyalar için bir sunucuda Git deposu oluşturmayı tercih eder. Git, birkaç temel komutla mevcut Linux kernel deponuzu kopyalamanıza ve yalnızca ilgilendiğiniz dosyalar için çok daha düzenli ve verimli bir değişiklik günlüğü tutmanıza imkan tanır. Süreç oldukça basittir ve küçük ya da büyük kodlama projelerini kolayca yönetebilirsiniz. Bu işlem aynı zamanda "dallanma" olarak da bilinir; çünkü özünde, mevcut deponuzdan yeni bir dal oluşturursunuz.
Git İş Akışı
Git Workflow, kendi Git sunucunuzu yapılandırdıktan sonra sıklıkla kullanacağınız bir diğer önemli kullanım senaryosudur. Yerel Git sunucunuzu kullanarak klonlama işlemiyle iki dal seti oluşturabilir ve bunlardan birini projenizi, örneğin bir web sitesini, temsil edecek şekilde ayarlayabilirsiniz. Ardından, her geliştiricinin yaptığı tüm değişikliklerin kaydedileceği ve uygulamadan önce test edilebileceği ayrı bir üretim dalıyla bir Git sunucusu oluşturabilirsiniz. Bu çok katmanlı geliştirme ve test yaklaşımı verimliliğinizi artırmakla kalmaz, geliştirme sürecini ve değişiklikleri takip etmeyi de inanılmaz ölçüde kolaylaştırır.
Birleştirme
Deponuzu dallandırmayı ve değişiklik günlüğünü hatırlıyor musunuz? Adından da anlaşılacağı gibi, Birleştirme tam olarak bunun tersi işlemidir. Git'in en zorlu yönü olarak kabul edilen birleştirme işleminde, bir depo dal düğümündeki verileri orijinal olarak ayrıldığı ana depoya geri enjekte etmeyi amaçlıyoruz. Bu işlem genellikle, farklı alanlardan gelen tüm proje değişikliklerini tek bir özlü ve anlaşılır depoda toplayan kapsamlı bir proje raporu ve değişiklik geçmişi oluşturmak için yapılır. Proje süresince karışıklığı önlemek için dallanmaya ihtiyaç duyarken, birleştirme bu işlemi tersine çevirip sorun giderme sırasında projenin sonunda daha net bir genel tablo ortaya koymak için tasarlanmıştır.
Kendi Git Sunucunuzu Barındırın: Artılar ve Eksiler
Her programın, ona yeni başlayacak ve projelerinde kullanmayı planlayan kullanıcıların mutlaka bilmesi gereken kritik artıları ve eksileri vardır. Bu bölümde Git'e özgü artı ve eksileri ele alacağım. Ancak bu artı ve eksiler yalnızca Git'i kendi kendinize barındırdığınızda geçerlidir; bu rehber de büyük ölçüde bunu konu alıyor, o yüzden başlayalım.
Kendi Kendine Barındırılan Git: Artılar
Üçüncü Taraf Müdahalesi Yok
Git'i kendi sunucunuzda barındırdığınızda, dosyalarınıza yalnızca siz ve izin verdiğiniz kişiler erişebilir. Bu durum, istenmeyen üçüncü taraf müdahalesini tamamen ortadan kaldırır ve projenize gönül rahatlığıyla odaklanmanızı sağlar. Verileriniz de çok daha güvende olur; güvenlik için ayırdığınız kaynakları başka alanlara yönlendirebilirsiniz.
Güvenlik
Güvenlik konusuna gelinince: Git'i iyi uygulamalar ve üçüncü taraf araçlarla istediğiniz kadar güvenli hale getirebilirsiniz. Kendi sunucunuzda barındırırken güvenlik düzeyi bir miktar düşse de kendi operasyonunuzu ne kadar güvenli yapabileceğiniz konusunda neredeyse sınırsız bir özgürlüğünüz var.
Sınırsız Depolar
Klonlamayı ve dallanmayı hatırlıyor musunuz? Git ile oluşturabileceğiniz depo sayısında herhangi bir sınır yok. Bu, her geliştirme dalının kendi deposuna ihtiyaç duyduğu büyük projeler için Git'i son derece uygun bir araç haline getiriyor. Unity ile çalışılan durumlar ve 3D varlıklar gibi büyük dosyaların bulunduğu projeler için de mükemmel bir seçenek.
Kendi Sunucunda Git: Dezavantajlar
Yüksek Yönetim Yükü
Git depolarını kontrol altında tutmak hızla zorlaşabilir. Kendi sunucunuzda bir Git sunucusu yapılandırmaya karar verirseniz, tüm dalları ve meta verileri yönetmek kısa sürede baş ağrısına dönüşür. Ya son derece titiz davranmanız ya da bu işi bilen bir geliştirici tutmanız gerekir.
Dik Öğrenme Eğrisi
Git'i barındırmak ayrı bir iş, onu gerçekten öğrenip kendi yerel Git sunucunuzu çalıştırmak ise bambaşka bir iş. Git, depo tabanlı DevOps araçları arasında en yüksek uzmanlık gerektirenlerin başında gelir. Bunu öğrenmek için ciddi zaman ayırmanız ya da dışarıdan destek almanız kaçınılmazdır.
GUI ve Windows Desteği Yok
Windows üzerinde bir Git sunucusu kurmak mı istediniz? Ya da Git sunucusunu GUI ile çalışacak şekilde yapılandırmak mı? Maalesef bu mümkün değil. Yalnızca Linux çekirdeği tabanlı işletim sistemleriyle sınırlısınız ve işleri kolaylaştıracak herhangi bir GUI de yok. Git sunucusu kurup kendi başınıza barındırmak istiyorsanız, önce temel kodlama bilgisini edinmeniz gerekir.
Eski Yöntem
Her açıdan değerlendirildiğinde, kendi sunucunuzda Git çalıştırmak artık güncelliğini yitirmiş ve daha verimli yöntemlerin gerisinde kalmış bir yaklaşım. Daha verimli bir Git deneyimi için GitLab kullanmak öne çıkan seçenektir. Kendi Git sunucunuzu çalıştırmaya karar vermeden önce şuna göz atın: GitLab da!
Git Sunucusu Kurmak İçin Gerekenler
Git sunucusu kurmak ve kendi Git sunucunuzu barındırmak için nelere ihtiyaç duyduğunuza hızlıca bakalım. Git barındırmak için yalnızca iki bileşene ihtiyacınız var: bir sunucu ve bir Git kurulumu. Bunların yanında, Git sunucusunu yapılandırma sürecini yürütebilmek için temel düzeyde kodlama bilgisi de gereklidir.
Git Sunucusu
Sunucu tarafında kendi bilgisayarlarınızdan birini, geleneksel sağlayıcıların özel sunucularını ya da daha doğrudan bir yönetim tercih ediyorsanız bir bulut VPS (sanal özel sunucu) kullanabilirsiniz. VPS ile sunucuyu doğrudan yönetirken aynı anda Git örneğini de çalıştırabilirsiniz. Git sunucusu kurabilmek için sunucunuzda bir Linux dağıtımı bulunması gerektiğini unutmayın. Cloudzy, aralarında Ubuntu, Debian, CentOS, Kali ve OpenSUSE'nin de yer aldığı 10'dan fazla köklü Linux dağıtımıyla geniş bir Linux VPS hizmet yelpazesi sunar. Aylık yalnızca 4,95 dolardan başlayan fiyatlarla, konumunuza yakın güvenilir bir Linux sunucusuna sahip olabilir, bağlantı kalitenizi üst düzeyde tutarken Git sunucunuzu bu sunucu üzerinde barındırabilirsiniz.
Web sitenizi veya uzak masaüstünüzü barındırmak için ekonomik ya da premium bir Linux VPS edinin; piyasadaki en uygun fiyatlarla. VPS, daha yüksek verimlilik için Linux KVM üzerinde çalışır ve hız odaklı NVMe SSD depolama ile güçlü donanım altyapısından yararlanır.
Devamını OkuGit Örneği
Git sunucusu kurma süreci basittir ve kurulum aşamasında otomatik olarak tamamlanır. Daha önce de belirtildiği gibi Git açık kaynaklıdır ve ücretsizdir. Bu özellik, Git'i pek çok depo tabanlı geliştirme aracına kıyasla cazip kılan başlıca etkendir. Gereksinimler hazır olduğuna göre, Linux sunucunuzda Git sunucusu kurmanın adım adım rehberine geçelim.
Linux'ye Git Sunucusu Kurma (Adım Adım Rehber)
Adım 1: Git'i İndirin ve Kurun
Git sunucusu kurulum sürecinin ilk adımı bu. Tercih ettiğiniz Linux dağıtımının terminaline aşağıdaki komutu girerek Git indirme işlemini başlatın:
Ubuntu/Debian Tabanlı Dağıtımlar:
sudo apt install git
Arch Tabanlı Dağıtımlar:
sudo pacman -S git
RHEL Tabanlı Dağıtımlar:
sudo dnf install git
Bu komut, Git'i Linux sunucunuza indirip kuracaktır. İşlemin tamamlanmasını bekleyin.
Adım 2: Git Sunucusunu Kaydedin ve Yapılandırın
Başka bir masaüstünde yerel bir sunucunuz varsa açın; VPS kullanıyorsanız Linux sunucunuza uzaktan bağlanmak için SSH veya RDP kullanın. Şimdi Git sunucusunu uzaktan çalışacak şekilde yapılandıracağız. Bunun için aşağıdaki komutu kullanarak bir Git hesabı oluşturun:
ssh username@address
sudo useradd git
Ardından yeni oluşturduğunuz hesaba geçmek için şu komutu girin:
su git
Bu adım, ağırlıklı olarak Git yerel sunucunuzun güvenliğini sağlamak amacıyla gerçekleştirilir. Bu hesap aracılığıyla sunucunun yöneticisi olursunuz. Gelecekteki kullanıcıları, önceden tanımlanmış kısıtlamalar ve erişim seviyeleriyle kullanıcı gruplarına rahatlıkla atayabilirsiniz.
Adım 3: SSH Dizinleri Oluşturma ve Sunucuda Git Deposu Oluşturma
Git sunucusu kurulum sürecinin bir sonraki adımı, aşağıdakileri kaydetmek için özel bir SSH dizini oluşturmaktır: Genel anahtarlar ve sunucuda bir Git deposu oluşturmak için ek güvenlik katmanları ve tanımlanmış erişim seviyeleriyle çalışın. Başlamak için aşağıdaki komutu girin:
ssh git@address
mkdir .ssh
chmod 700 .ssh/
touch .ssh/authorized_keys
Bu komut satırıyla diğer kullanıcıların erişimini kısıtladıktan sonra, SSH anahtarlarınızın güvenli biçimde bir authorized_keys klasöründe saklandığından emin olmak için bir sonraki satırı girin; bu klasöre yalnızca siz erişebilirsiniz (bu komutu yalnızca id_rsa.pub dosya):
cd .ssh
ssh-keygen -t rsa
cat id_rsa.pub
klasörünüz YOKSA çalıştırın). Ardından, Git yerel sunucunuzda yeni bir SSH bağlantısı kurmak için oluşturduğunuz SSH ortak anahtarını kopyalayın:
cd .ssh
vi authorized_keys
Adım 4: Ana Dizin Oluşturma
Linux sunucunuzda, Git'in gelecekteki projelerinizde kullanacağı tüm depoları saklamak için yeni bir dizin oluşturmanız gerekir. Git depolarınızı yönetmenin tüm ayrıntılarını öğrenebilirsiniz. Şu komutu girin:
mkdir directory_name
Adım 5: Projenizi Ekleyin!
Git sunucusunu başarıyla oluşturdunuz! Git sunucusu kurulum süreci tamamlandı ve sunucuyu yapılandırmayı da başardınız. Geriye kalan tek şey, aşağıdaki komutla yeni projeler eklemektir:
cd parent_directory
mkdir new_project.git
Ardından, yerel bilgisayarınıza uzak kaynak eklemek için şu komutu çalıştırın:
git init --bare
git remote add origin name git@address:new_project.git
Son olarak, her şeyin beklendiği gibi çalışıp çalışmadığını test etmek için bir Git push yapın:
touch testfile
git add testfile
git commit -m "test file"
git push name master
git clone git@address:new_project.git
Tebrikler, Git'i başarıyla barındırdınız ve sunucuda bir Git deposu oluşturdunuz.
SSS
Git'i Sunucu Olmadan Barındırabilir miyim?
Hayır. Sunucunuzun yapısı ne olursa olsun, sunucu görevi görecek bir donanıma ihtiyacınız vardır. Depolarınız için bulut sunucu olarak GitHub kullanabilir ya da VPS tekliflerimizden yararlanabilir veya başka bir üçüncü taraf barındırma hizmeti kullanabilirsiniz.
Git Sunucusunu GUI ile Kurmanın Bir Yolu Var mı?
Evet. Git'in kendisi GUI desteği sunmasa da, GUI içeren bağımsız bir sürümü olan "Git GUI", arayüzsüz çalışmayı tercih etmeyenler için kullanılabilir.
Git İçin Ücretli Bir Plan Var mı?
Hayır. Git, ilk geliştiricileri ve yayıncılarının tutumunu yansıtacak şekilde her zaman ücretsiz ve açık kaynaklı bir program olmuştur ve olmaya devam edecektir. Programı projelerinizde türev olarak kullanabilirsiniz; her halükarda program ücretsizdir.
Neden Kendi Git Sunucunuzu Barındırmalısınız?
Sınırlı sayıda depoyla küçük bir proje yürütmek istiyorsanız kendi sunucunuzu barındırmak çok daha fazla gizlilik ve güvenlik sağlar. Temel motivasyon da budur. Ancak daha büyük projelere ve daha fazla depoya geçtikçe kendi kendine barındırmanın verimliliği düşmeye başlar.