Bir yazı üzerinde yıllardır sürekli değişiklik mi yapıyorsunuz? Dosya isimleriniz “hikayem_son_final_v_232.docx” gibi mi görünüyor? Yaptığınız değişiklikleri, modifikasyon ağacının dallarını takip edemeyecek hale mi geldiniz? Tek bir tuşa basarak herhangi bir versiyona dönmek, ya da farklı versiyonları cümle cümle seçerek birleştirebilmek gibi işlemleri zahmetsizce yapabilmek fikri size çekici mi geliyor? Belki de başkalarıyla aynı hikaye üzerinde çalışmak istiyorsunuz ama sürekli iletişim halinde kalmadan nasıl bu işi bir yoluna sokacağınızı bilmiyorsunuz?
Size iyi haberlerim var, yazılım işiyle uğraşan herkes de bu problemleri paylaşıyor. Ve de Linus reyizin sektörün nerdeyse tamamında kullanılan efsane bir çözümü var: Git. Bu harika aracın program olmayan şeyler yazan insanlar arasında ne kadar az kullanıldığını görmek beni efkardan efkara sürüklüyor. İnsanların 5 yıllık, oyun hamuruna dönmüş docx dosyalarını ordan oraya savurmalarını, gönderip almalarını, versiyon kargaşasına düşmelerini izlemek beni adeta derbeder ediyor. Ben de bu durumu iyileştirmek için biraz çaba göstermeye karar verdim (bir de tasarım dökümanı taslağı yazmam gerekiyor ama ne yazmam gerektiğine karar veremedim, y düşünürken x yapmış olayım dedim).
Git ile yazınızın versiyonlarını takip edip, dallara ayırıp, dallarda değişiklikler yapıp, bunları isterseniz istediğiniz şekilde birleştirebilirsiniz. Farklı insanlarla yazınıza işkence çektirmeden kolaborasyonda bulunabilir, iletişimi minimimumda tutabilirsiniz (icat ediliş amacı bu hatta: Linus reyizin insan görmek istememesi). İstediğiniz an işinizin istediğiniz versiyonuna dönebilir, bu işlemlerin hepsinin ve daha fazlasının çeşitli kombinasyonlarını gerçekleştirebilirsiniz. Hatta işinizi klasörlere, dosyalara bölüp belli bir klasörün tamamı için bütün bu saydıklarımı uygulayabilir, dertlerinizin çoğundan kurtulabilirsiniz. Hatta ve hatta yazılarınızı bulutta saklayıp farklı cihazlardan bile ulaşabilirsiniz.
Evet, o kadar güzel bir şey. Kısa bir soru-cevap:
Peki bu muhteşem şey için yazılım, lisans falan satın almamız gerekiyor mu?
Hayır, tamamen bedava. Hatta bulut çözümleri bile bedava. Hatta ve hatta git sistemi tamamen açık kaynak kodlu, yani mesela nasıl çalıştığını merak ediyorsanız kodunu okuyarak merakınızı giderebilir; yahut kafanıza göre değiştirip kullanabilirsiniz. Hatta bunu dağıtabilirsiniz ama yanılmıyorsam satamıyorsunuz, GPL lisanslı olması lazım. Neyse.
Peki Bu muhteşem aracı kullanmak için programlama bilmeme gerek var mı?
Hayır. Yani okey normalde bir kaç komut satırı komutu öğrenmeniz gerekiyor. Ama bunu da yapmak zorunda değilsiniz, çünkü bu işleri de bir kaç tıka indirgeyen araçlarımız var, ki bunlardan birinden de biraz bahsedeceğim.
Peki madem bu kadar süper bir şey, neden yazılım camiasının dışında daha yaygın kullanılmıyor?
İnanın ki ben de anlamıyorum. ABD’de bir kaç eyalet yasalarını git ile takip ediyor (ki bence tüm ülkeler bunu yapmalı). Ama böyle harika bir şeyden kimsenin haberdar dahi olmaması çok üzücü bence.
Okey, peki nasıl kullanacağız?
Burada biraz kolaya kaçmış gibi görüneceğim belki ama; gerçekten benden çok daha iyi anlatma kabiliyetine sahip bir sürü insanın yazdığı bir sürü rehber bulabilirsiniz internette. Her düzeye hitap eden türkçe-ingilizce rehberler mevcut. Biraz gugıllayıp en beğendiğinizden girişebilirsiniz hocamlar. Mesela şu ve ya şu fena değil. Genel çalışma ve dallanma mantığı konusunda ise şunu çok başarılı buluyorum.
Burdan sonrası biraz daha kişisel bir tercih, ama ben şahsen yazı yazmak için pycharm kullanıyorum. Çünkü bedava ve Jetbrains’in mükemmel IDE’lerinin bütün altyapısını paylaşıyor; ki git kullanırken işimizi kolaylaştıran da tam olarak bu. Tek bir komut yazmadan pycharm üzerinden git işlemlerinizi gerçekleştirebilirsiniz. Ayrıca özellikle merge, blame, annotate gibi operasyonlarda işlerinizi aşırı kolaylaştırıyor. Pycharm kullanımı konusunda da sizi internetteki yüzlerce rehbere yönlendireceğim (yine, benden çok daha iyi anlatacaklardır). Mesela direkt Pycharm’ın rehberi güzel.
Ama bir iki not düşeyim:
-
Yazılarınızı .md uzantılı dosyalarda yazarsanız pycharm bunu otomatik markdown dosyası olarak algılar ve baskıda nasıl görüneceğinin önizlemesini otomatik gösterir size. Markdown formatını da biraz araştırabilirsiniz, makul ölçüde güçlü ve çok basit bir format. Ayrıca direkt pdf çıktısı alabilirsiniz.
-
Her cümleyi yeni bir satır olarak yazınızı yazarsanız değişikliklerinizi git ile çok daha kolay takip edebilirsiniz. Hem de markdown formatının bir gereği olarak bunlar önizlemede otomatik birleştirilir.
Sonuçta başta biraz karmaşık gelebilir, ama bir kaç gün biraz vakit harcanıp biraz kurcalanırsa, bir şeyler yazan herkesin bu araçtan faydalanabileceğini düşünüyorum hocamlar. Sorularınız, merak ettikleriniz, eleştirileriniz varsa buyrun çekinmeyin.