3. Yerel Versiyon Kontrol Sistemi
Geliştiricilerin büyük bir kısmı projelerinin yedeklerini , versiyon
numarası ismini dizin ismi olarak verdikleri dizinlerin altında
saklarlar.Bu yöntem versiyon kontrolü için en kolay yöntem
olmakla birlikte hatalara da en açık yöntemdir.Karışıklıkların
önüne geçmek için versiyon numaralarını otomatik olarak
oluşturan ve bunları veri tabanına kaydeden sisteme yerel
versiyon kontrol sistemi denir.
4.
5. Mekezi Versiyon Kontrol Sistemi
Yerel versiyon kontrol sisteminde veritabanı geliştiricinin
bilgisayarında tutulur ve sadece bilgisayarın sahibi olan geliştirici
bu veritabanına erişebilir.Fakat bilindiği üzere projeler büyüdükçe
proje üzerinde çalışan kişi sayısının artması kaçınılmazdır.Proje
üzerinde yapılan değişikleri her çalışanın görebilmesi için versiyon
kontrol veri tabanı yerel sistemden alınıp bir sunucuya taşınır ve
bir ağ aracılığıyla veri tabanına erişim sağlanır.Aynı ağa dahil
herkes bu veri tabanını görüntüleyebilir.Her ne kadar merkezi
olmasından dolayı güvenilir gibi gözüksede bu yöntemle versiyon
kontrolü yapmak proje için ölümcül hatalara sebep olabilir.
6.
7. Dağıtık Versiyon Kontrol Sistemi
Merkezi kontrol sisteminde sunucuda herhangi bir hata oluşması
durumunda tüm versiyon kontrol veri tabanı kaybedilebilir.Bunun
önüne geçmek için dağıtık versiyon kontrol sistemi
geliştirilmiştir.Sunucuda var olan versiyon kontrol veri tabanı
projeye sahip istemcilere dağıtılır bu sayede merkezi sunucudaki
dosya veri tabanının başına birşeyler gelmiş olsa bile
istemcilerdeki veri tabanı kullanılarak veri kaybı riski azaltılabilir.
10. Versiyon Kontrol Yazlımları ile ;
● Versiyon kontrol veri tabanına erişim için bir arayüz oluşturulabilir.
(GitKraken,SourceTree)
● Birden fazla geliştiricinin projede daha aktif çalışması sağlanabilir.
● Projede yapılan değişikliklerin kim tarafından ne zaman ve nasıl yapıldığı
görülebilir.
● En önemlisi , proje bir önceki durumlardan herhangi birine geri
döndürülebilir.
11.
12.
13. 2005 yılında Linux çekirdeğinin geliştirilmesine yardımcı olması
için Linus Torvalds tarafından başlatılan açık kaynak kodlu
dağıtık versiyon kontrol sistemi programı projesidir.
14. Snapshot
Projenin durumlarından herhangi birine verilen isimdir.
Commit
● Snapshot oluşturma işlemidir
● Proje içerisinde yapılan her bir değişiklik bir commit’tir.
● Bir projede yüzlerce,binlerce hatta onbinlerce commit bulunabilir.
● Bir commit’te 3 tane bilgi bulunur.
1)Bir önceki commit’ten farklı olarak nelerin değiştiği,ne zaman ve kim tarafından
değiştirildiği.
2)Kendinden önce gelen commit’in ne olduğu bilgisi.
3)Commit’i unique yapan hash code.
15. Repository(Repo)
● Tüm dosya,commit ve snapshot’ların barındırıldığı disk alanıdır.
● Yerel donanımda veya sunucu donanımında oluşturulabilir
● Sunucu üzerinden bir repo’yu indirme işlemine “Clone” denir.
Pull-Push
● Pull = Yerel donanımda bulunmayan commit’lerin sunucudan yerele indirilmesi
işlemidir.
● Push = Yerelde bulunan fakat sunucuda bulunmayan değişiklikleri commit etme
işlemidir.
16. Branch
● Commit’lerin toplandığı repo dallarına verilen isimdir.
● Birden fazla branch bir repo içerisinde bulunabilir.
● Repo oluşturulurken “Master” isimli branch otamatik oluşturulur.
Merge
● Master dışındaki bir branchte yapılan değişiklerin Master branch’iyle birleştirilme
işlemine denir.
20. 2008 yılında Tom Preston Werner tarafından kurulmuştur.Git
repoları için web tabanlı bir depolama servisidir.Açık kaynaklı
repolar için ücretsizdir.Ticari repolar için ise ücretli üyelikler
gerekir.Geliştiricilerin sosyal medyası olarak bilinir.
21. Fork : Bir başka geliştiriciye ait olan bir repoyu kopyalama işlemidir.
22.
23. Pull Request : Forklanan bir projenin master branchinden yeni bir
branch türetip , bu branch üzerinde değişiklikler yapılabilir.Eğer bu
değişikliklerin proje için önemli olduğunu düşünüyorsanız proje
sahibini bilgilendirmek için pull request oluşturabilirsiniz.Pull request
oluşturma işlemiyle birlikte yaptığınız değişiklikler projeyi geliştiren
topluluk tarafından tartışılabilir hale gelir.Proje sahibinin değişiklikleri
kabul etmesi durumunda değişiklikler master branch ile Merge edilmiş
olur.