Konuya giriş açısından yukarıdaki paragrafta da kısaca
bahsettiğim gibi bare komutu sunucu tarafında proje başlatılmasının
anahtarıdır. Proje başlatılması için git init –bare veya git –bare init komutu
kullanılır. Projenin başlatılması ile ilgili bir örnek verecek olursak:
mkdir projeadi.git
cd projeadi.git
git --bare init
git update-server-info
Aslında sizin sorunuzu duyar gibiyim… Neden git init
kullanmak varken sunucu tarafında git –bare init komutunu kullandık? Bu
kullanım proje kopyasını nasıl sunucu kopyası yapar?
Git Server yapısı dağıtık mimaridedir. Yani projede çalışan
herkeste bir working copy varken bir de merkezi sunucuda kopya bulunur. Böylece
herkes kendi kopyası üzerinde çalışırken merkezi sunucuda ortak çalışma
tutulmuş olur. Git bare komutun kullanımın temel amacı da herkesin merkezi
sunucuda commit yada değişiklik komutunu uygulamasını engellemektir. Yani siz
projeyi –bare seçeneği ile başlatırsanız artık bu prjede git commit komutunu
uygulayamazsınız. Yaptığınız değişiklikleri sadece push ve pull komutları kullanarak
alabilir ve ya sunucuya değişiklikleri uygulayabilirsiniz. Aslında Git Server
mantığını anladıysanız ve bir ekiple proje geliştiriyorsanız, aynı zamanda
dağıtık versiyon yönetim kontrol sistemi mantığına da aşinaysanız bunun ne
kadar olduğunu anlayabildiğinizi biliyorum. Bare komutun önemini kısa bir
cümleyle anlatmak gerekirse bu komut Git Server yapısında dağıtık mimariyi
uygulayabilmenin anahtarıdır. Bu komutla proje başlatırsanız projede
yapacağınız değişiklikleri artık client tarafından yapmak zorundasınız. Bunun
dışında Git Server projelerinde olan branch yapılarını, değişiklerin
sorgulanması, analizi, geriye dönüşler ve başka işlemler sunucu projesinde de
yapılabilir. Burada temel mantık bir daha söylüyorum değişikliklerin client
tarafından yapılmasını sağlamak.
Projeyi bare seçeneği ile başlattıysanız projenin
erişebilirliğini sağlamak, Sunucu yapılandırmasında yapacağınız son işlem
olacaktır. Bunun için kullandığınız iletişim protokolüne (http, ssh) göre,
kullanıcı veya group bazında yetkilendirme yapmalısınız.
Umarım bu yazı faydalı olmuştur. Sorularınız varsa sormaktan
çekinmeyin. En kısa sürede yanıtlamaya çalışacağım…
Yorumlar
Yorum Gönder