"Bugün size en popüler iki sürüm kontrol programından bahsedeceğim: SVN ve Git."

"SVN yaklaşık olarak geçen derste anlattığım şekilde çalışıyor. Git biraz daha karmaşık ve ben bunu daha ayrıntılı olarak ele almayı planlıyorum."

"Bana SVN ve Git belgelerinin bağlantılarını verebilir misiniz?"

"Tabii, bir saniye."

http://svnbook.red-bean.com/en/1.7/svn-book.html

https://githowto.com  (bu sadece bir şaheserdir)

"Yani Git ."

"SVN'den biraz daha karmaşık.  Git ile, sunucu deposuna ek olarak her kullanıcının kendi yerel deposu vardır. "

"Peki nereye söz veriyorsun?"

"Kullanıcılar her zaman yerel depolarına bağlıdır."

"Peki ya sunucu deposu?"

"Yerel ve sunucu havuzlarını senkronize etmek için özel Çekme ve İtme komutları vardır .

"Bunun bir nedeni var. Bazen bir programcının, paylaşılan depoya eklenmeden önce birkaç yüz işlemi içerebilen, kendi adına çok iş yapması gerekir."

"Bunu SVN'de yapmak için, ayrı bir dal başlatmanız ve ardından onu ana hat ile birleştirmeniz gerekir."

"Git ile her zaman yerel depoya taahhütte bulunursunuz ve işiniz bittiğinde tüm değişiklikleri bir toplu iş olarak sunucudaki merkezi depoya gönderirsiniz."

"Yalnızca küçük bir kod yazarken bu yöntem biraz aşırı görünebilir. Ancak görevleriniz haftalarca uzayacak kadar büyük olduğunda, o zaman taahhütte bulunmadan tüm bu süreyi yazamayacağınızı anlarsınız."

"Neden sadece iki hafta çalışıp ardından değişikliklerinizi sunucuya bir kez taahhüt edemiyorsunuz?"

"Eh, bir sürüm kontrol programı pek çok kolaylık sunar."

"Her gün taahhütte bulunduğunuzu ve 10. günde son iki günde yaptığınız değişikliklerin planladığınız gibi çalışmadığını keşfettiğinizi düşünün. Ve 8. günde sahip olduğunuz koda geri dönüp göreve yaklaşmak istiyorsunuz. farklı."

"Yerel depoda son iki gün içinde yapılan değişiklikleri geri almanız ve istenen duruma geri döndürmeniz yeterlidir. Bu, geri alma işlemi olarak bilinir ."

"Bana bunu yapabileceğini mi söylüyorsun?"

"Evet. Ek olarak, işleme geçmişi depolandığı için, bir şeyin ne zaman ve neden ve kim tarafından işlendiğini, ilgili özellikleri/hataları ve bu çalışmanın bir parçası olarak hangi on dosyanın aynı anda değiştirildiğini öğrenebilirsiniz."

"Birinin hata düzeltmesinin başka birinin kodunu bozduğunu varsayalım. Kodu geri alabilir ( geri alabilir ) ve değişiklik hiç olmamış gibi devam edebilirsiniz."

"Tamam, harika. İkna oldum. Tüm bunların nasıl çalıştığını gösteren birkaç örnek gösterebilir misin?"

"Elbette."

" Merkezi depoyu yerel bilgisayarınıza şu şekilde kopyalayabilirsiniz :"

Taahhütler ve şubeler - 1

"Yani, Checkout işlemine artık gerek yok."

"Evet. İşte İtme işlemlerinin örnekleri:"

Taahhütler ve şubeler - 2

"Ve Çekme işlemleri:

Taahhütler ve şubeler - 3

"Ah. Bu aşağı yukarı mantıklı."

"Bu arada, GitHub adında harika bir hizmet var."

"Herhangi bir programcı oraya kaydolabilir ve kendi Git depolarını oluşturabilir. Daha fazla aşina olmanızı öneririm."

"İşte birkaç yararlı bağlantı:"

https://githowto.com

https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

https://articles.assembla.com/using-git/getting-started/set-up-git-on-windows-with-tortoisegit

"Pek çok Git istemcisi olduğuna dikkat edin."

"İlk olarak, metin komutları girmenizi sağlayan GitBash var   ."

"Sonra Windows Gezgini'nde yerleşik iyi bir program olan TortoiseGit var . Git deposundaki dosyalarla doğrudan Explorer'da çalışmanıza olanak tanır."

"IntelliJ IDEA, Git'i destekliyor ve her türlü karmaşık komutu yalnızca birkaç tıklamayla doğrudan ortamın içinden yürütmenize izin veriyor."

"Peki hangisini öğreneyim?"

"Hepsini tanımanızı tavsiye ederim."

"Görüşmeyi geçecek ve işe varacaksınız. Git'e bir bağlantı, bir kullanıcı adı ve parola alacaksınız - hepsi bu. O zaman tek başınasınız."

"Kendi başına" ile ne demek istiyorsun?

"Yani Git'i kendin kuracaksın, deponun bir kopyasını kendin çekeceksin,..."

"Ve sonra projeyi inşa etmeniz ve çalıştırmayı denemeniz gerekecek."

"Derleme yönergeleri de büyük olasılıkla proje belgeleriyle birlikte Git deposunda olacaktır."

"Takım lideriniz akşam size gelecek ve  'Şu ana kadar ne anladınız?' diye soracak. "

"Ve 'Burada Git'i kurmaya çalışıyorum ama henüz bir başarı elde edemedim' diyeceksiniz. «Beni kovmayacaksın, değil mi?» "

"Ya da henüz öğle vaktiyken ekip liderine gidip  «Git'i yükledim, projeyi çektim ve belgelere göz attım ama yüzlerce dosya var ve henüz her şeyi çözmedim. Nereden?'' diyebilirsiniz. mevcut yapım talimatları nelerdir?'» "

"Farkı hissedebiliyor musun?"

"Evet. İkinci durumda, süper rock yıldızı bir programcıyım ama ilkinde, Git'ten proje çekmeyi bile bilmeyen bir robo-doofus'um. Diğer bir deyişle, sıçtım. daha programlamaya başlamadan önce. Sanırım ondan sonra kod yazmama bile izin vermediler."

"Gördün mü, kendi sorularını yanıtladın. Öyleyse çalış ve çöz. Bunu senin için kimse yapmayacak."

"Bana yardım etmeyecek misin?"

"Ben zaten yardım ettim. Unuttuysan diye burada Java öğretiyoruz. Geri kalan her şey için tek başınasın. Yoksa kafan sadece içki için mi?"

"Tamam, anladım. Teşekkürler Bilaabo!"