Bugün Internet Computer Protocol blok zincirini tanıyıp Hello World örneğiyle bu merkeziyetsiz geliştirme ortamına ilk adımımızı...
Temel Git Yapısı Kullanımı
Kemal İKİZOĞLUHerkese merhaba,
Bu blog yazımızda sizlerle Git yapısının kullanımını keşfediyor olacağız. Oluşturacağımız Markdown dosyası ile çalışma dosyamızda bir repo oluşturup bunu uzak sunucu olan Github’ta oluşturacağımız repoya göndereceğiz. Bir önceki blog yazımda Git yapısının ne olduğu, ne işe yaradığını keşfedip uygulama kurulum sürecini tamamlamıştık. Eğer cihazınızda Visual Studio Code ve Git yazılımı kurulu değilse ve yaptığımız işlemlere göz atmak isterseniz şuradan inceleyebilirsiniz. Şimdi bu sisteminin uygulama üzerindeki çalışma mantığını anlayarak başlayalım.
Git Çalışma Mantığı
Git versiyon sistemi yukarıdaki görselden de görüldüğü üzere dört katmandan oluşmaktadır:
- İlk katman, çalışmakta olduğunuz klasör: working directory
- İkinci katman staging index aşaması: Projenizde yaptığınız değişiklikleri henüz kaydetmediğiniz, dönüm noktaları eklemediğiniz alandır.
- Üçüncü katman, değişikliklerinizi kaydettiğiniz commit aşaması: Bu katman değişikliklerinizin local repository içine yazıldığı katmandır.
- Son katman ise değişikliklerin uç birime iletildiği alandır. Bu kısım çalışma dosyalarınızı Github üzerindeki repository alanlarınıza gönderdiğiniz kısımdır.
Komutları Nasıl Kullanacağız?
Visual Studio Code uygulamasını açtıktan sonra ekranın üst kısmında bulunan Terminal menüsüne tıklayıp Yeni Terminal / New terminal seçeneğine tıklayalım. Ekranın alt kısmında açılacak yarım pencere üzerinden komutlarımızı yazıp işlemlerimizi gerçekleştireceğiz.
Çalışma klasörümüzün içerisine learn.md adında bir Markdown dosyası oluşturdum ve komutlarımızı bu dosya üzerinden uygulayarak keşfetmeye başlayalım.
git version
Biliyoruz ki yazılımlar sürekli güncelleniyor ve hangi sürümü kullandığımızı bilme ihtiyacı hissediyoruz. Bunun için terminalde git version yazdığımızda hangi Git sürümünü kullandığımızı öğrenebilirsiniz.
git init
Bu komut bulunduğunuz dizinde .git adında bir klasör oluşturur ve bu klasörü git repository (depo) haline getirir. Github uygulamasını kullanacağımız zaman bu klasör içeriğini bu Git deposu sayesinde Github sunucularına gönderebilirsiniz.
Eğer oluşturduğunuz klasör içerisinde çalışmanızı yürütmek isterseniz klasörünüzü Visual Studio Code ile açtığınızda terminal üzerinden aynı komutları çalıştırarak bu depoyu oluşturabilirsiniz.
git status
Bu komut ile son aşamadaki durumunuzu kontrol edebilirsiniz. Görselde sol menü içerisindeki learn.md dosyamızın yeşil renkte ve hemen yanında U işaretinin olduğunu görmektesiniz. Aynı zamanda sağ bloktaki dosya başlığında da bu biçimlendirmeyi görüyorsunuz. Burada çalışma klasörü içerisindeki dosyaları henüz takibe almadığımız için Untracked – takip edilmemiş, izlenmemiş olarak belirtiliyor. Ayrıca git status kodunu kullandığımızda terminale gelen mesajda çalışma klasörünün içerisinde learn.md dosyası mevcut fakat bunu öncelikle add komutu ile takibe almalısın şeklinde bildiriyor. O zaman hemen takibe alalım.
git add
Çalışma klasörü içerisindeki dosyamı takibe alabilmek için git add dosya ismi komutu kullandım.
git add learn.md
Dosyayı takibe aldıktan sonra U – Untracked olan bidirim simgemiz A – Added olarak güncellendi. Bu komutu kullanmanın birkaç yolu bulunmaktadır:
git add /dosyayolu/dosyaismi – Klasörü takibe almak için kullanılır.
git add dosyaismi – Dosyayı takibe almak için kullanılır.
git add . – Çalışma klasörü içerisindeki tüm dosyaları takibe alır.
Böylelikle dosyamızı takibe aldık ve tüm değişiklikler yaptığımız işlemler neticesinde kayıt altına alınıyor olacak.
Takibe Alınan Dosyaların Kayıt Pozisyonları
Çalışma klasörü içerisindeki dosyamızı takibe aldıktan sonra git status dediğimizde dosyamızın takibe alındığını yeşil renkte belirtilen new file: learn.md satırından görebilirsiniz. Dikkatinizi çektiyse yeşil renkte belirtilmiş dosya ismimizin üzerinde “Changes to be committed: – Yapılacak Değişiklikler” adında başlık bulunmaktadır. Peki dosya üzerinde değişiklik yaptıkça neler olacak?
Git versiyon sisteminde add komutu ile dosyamızı takibe aldığımızda dosyamızdaki değişiklikler staging area denilen değişiklikleri görüp kontrol edebileceğimiz, kaydetme sürecini bireysel olarak yöneteceğimiz bir alanda geçici olarak kaydedilmektedir.
Çalışma dosyama veri girerek değişiklik yapıyorum. CTRL + S ile kaydettikten sonra A – Added simgesi M – Modified simgesine dönüştü.
Şimdi çalışma dosyamın içerisine Git komutları adında bir içerik satırı daha ekleyip kaydettim. Daha sonra git status komutunu çalıştırdığımda dosyamda bazı düzenlemelerin olduğunu ve içeriğinin değiştiğini paylaştı. Bu süreçte yaptığım tüm değişiklikler staging area kısmında yer almaktadır.
Süreci bir sonraki adıma taşıyabilmek adına yapılan değişiklikleri commit komutu ile repository – depo denilen cihazda veya uzak sunucu olan Github’ta depolayacağımız geri dönüm noktalarını oluşturacağız.
git rm –cached
Çalışma klasörünüzdtakibe aldığınız dosyayı takipten çıkartmak için kullanılan komuttur. Yanlışlıkla takibe eklenen veya bilinçli olarak takipten dosya çıkartmak istediğinizde bu komutu kullanabilirsiniz.
git rm –cached dosyaismi
Komutu kullanmadan önce A – Added pozisyonunda olan dosyamız git rm komutu ile yeniden U – Untracked pozisyonuna geçti.
git config
Bir bilgisayarda birden fazla kişi çalışıyor olabilir, farklı hesaplar üzerinde farklı projeler geliştiriyor olabilirsiniz. Zihninizde süreci organize edebilirsiniz ama bunu uygulama üzerinde de gösterebilmeniz gerekmektedir. Bu aşamaya kadar config ayarına ihtiyaç duymamıştık ama commit öncesi bunu gerçekleştirmemiz gerekmektedir.
Bu aşamada bir Github hesabına ihtiyacınız olacak. Eğer bir hesabınız varsa kayıtlı olduğunuz mail adresinizi ve kullanıcı adınızı girebilirsiniz. Bir Github hesabınız yoksa şuradan bir hesap oluşturup kayıt olduğunuz bilgileri kullanarak devam edebilirsiniz.
git config –global user.name “ikizoglu”
git config –global user.email “mail adresiniz”
git commit
Commit, commit etmek yazılım dünyasında sıkça söylenen bir sözcüktür. Hazırladığınız dosyaları local repository ya da depoya göndermek ve dönüm noktaları oluşturmak için kullanılan komuttur. Bir nevi yazdığınız kodun bu aşamasına kadarı tamamdır dediğiniz kısmıdır.
git commit -m “dönüm noktası mesajınız”
Burada git commit -m dedikten sonra dönüm noktası için belirteceğiniz mesaj ne ise onu çift tırnak içerisinde yazıyoruz. İlk commit işlemim için “ilk commit – git tanımı eklendi” mesajıyla işlemimi tamamladım.
Bu aşamaya kadar geldiniz ve “Author identify unknown” hatasını aldınız. Bunun için config ayarını yapmanız ve daha sonra yeniden commit atmalısınız.
git commit –amend
Yapmış olduğunuz son commit işleminde yorumu güncellemek isteyebilirsiniz. Bunun için git commit –amend -m “yeni commit mesajı” komutunu kullanabilirsiniz
git log
İlk commit işleminizi gerçekleştirdiniz fakat bir sonuç göremediniz. Ne kadar commit atılmış, hangi aşamadayız sorularının yanıtı git log komutunda saklı.
git log komutunu kullanarak attığımız commitleri görüntülüyoruz. Head -> master ifadesinde görüldüğü gibi kontrol sisteminde yer alan değişiklikler master yolu üzerinde takip edilmektedir.
Eklemiş olduğum diğer commitler de yine git log komutu yardımıyla takip edilebilir şekildedir.
git branch
Branch, dal veya şube anlamına gelmektedir. Yaptığımız commit işlemlerindeki belirtilen Head -> master ifadesindeki master bizim buradaki ana dalımızdır.
git branch komutu ile hangi dal üzerinde çalışma yaptığınızı görüntüleyebilirsiniz.
Paylaştığım bu görselde ana bir master dal üzerinde ayrılmış farklı dallar görülmektedir. Yazılımınızı geliştirirken farklı çözüm yolları denemek, kullanmak isteyebilirsiniz. Burada ayrılan dalları daha sonra birleştirmek mümkündür.
Şimdi bu noktaya kadar hazırladığınız içeriğinizi attığınız commitler ile dönüm noktaları oluşturmayı tamamladınız. Şimdi bir sonraki kısım olan bunu Github üzerinde paylaşabilmeye geldi.
git remote add
Bu komutu kullanarak bilgisayarda depoladığımız commitleri uzak sunucu olan Github’a gönderebilirsiniz. Bunun için uzak sunucuya göndereceğiniz dosya yolunu belirlemeniz gerekmektedir. Github üzerinde yeni bir depo oluşturarak bunu gerçekleştirelim.
Github sayfasına giriş yaptığınızda ekranınızın sağ ya da sol kısmından New butonu yardımıyla veya şuradaki linkten yeni bir repository oluşturabilirsiniz. Ben yine kendi klasörümün ismi olan git-formulas adında public olmasına dikkat ederek yeni bir repo oluşturdum.
Oluşturduğum repo dosyamın linki mavi arkaplana sahip alanda https://github.com/ikizoglu/git-formulas.git olarak görüntülenmektedir. Ben git uzantısını kaldırarak kullanabilirim.
git remote add origin link komutunu kullanarak Git uygulamasına uzak sunucu bağlantımı bildiriyorum.
git push
Remote Add komutuyla bağlantı kurduğumuz Github hesabımıza kaydettiğimiz commitleri göndermek için git push komutunu kullanmaktayız. Fakat seçmeden önce hangi branch gönderileceğini belirtmemiz gerekiyor.
git branch -m main komutunu kullanarak mevcut üzerinde çalıştığımız main branchını seçiyoruz.
git push -u origin main komutunu kullanarak seçtiğimiz main branchını göndermesini istiyoruz. Fakat hesap doğrulama ile ilgili bir hata ile karşılaşıyoruz.
Hatırlarsanız git config kısmında Github hesabınızla ilişkili user.email ve user.name bilgileri girmiştik, şimdi şifreyi de dahil ediyoruz.
Github hesabımızı Git sistemine entegre edebilmemiz için gerekli parola işlemini de tamamladıktan sonra yeniden gönderme kodunu çalıştırıyoruz.
git push -u origin main
Evet, şu an gönderme işlemimiz sorunsuz bir şekilde gerçekleşti. Hemen Github hesabımızdaki repoyu gözden geçiriyoruz.
Bilgisayarımızda depoladığımız repomuz Github üzerindeki belirttiğimiz alana başarılı bir şekilde yüklenmiş.
Ayrıca dosyaya giriş yaptığımızda yazdığımız içeriğin commit atılmış son halini görüntülerken History kısmından commit geçmişini de görüntüleyebiliyoruz. Böylelikle gönderim sürecini tamamlamış olduk. Bu aşamaya kadar geldiyseniz kendinizi lütfen tebrik edin!😉 👏👏
Neler Yaptık?
Git ve Github ile yazılım dünyasındaki ilerlemeyi uygulayarak görebilmek ve anlaşılırlığını kolay hale getirmek için hazırladığım temel git kullanımı yazımın ilk kısmını burada tamamlıyoruz. Bu noktaya kadar neler deneyimlediğimize baktığımızda şunları söyleyebiliriz:
- Kod editöründe git init ile kullanımı başlatmayı,
- Çalışma dosyalarını git add ile takibe başlatmayı,
- Config komutuyla hem git hem de github için kullanıcı işlemlerini,
- Git status ve git log ile durum-akış görüntülemeyi,
- Commit ile dönüm noktaları oluşturmayı,
- Branch kavramıyla hangi çalışma dalı üzerinde devam ettiğimizi,
- Github üzerinde yeni repo oluşturmayı,
- Oluşturulan bu repoyu git push ile uzak sunucuya göndermeyi öğrenmiş olduk.
Yukarıdaki rehber görselde de görüldüğü üzere üstte devam eden Add, Commit ve Push özelliklerini kullanarak çalışma dosyasından uzak depoya hazırladığımız dosyamızı başarıyla gönderdik. Ne kadar çok uygulama yaparsanız o kadar çok pratik kazanırsınız.
İçerik oluşturmak için kullandığım Markdown dosyası hakkında detaylı bilgi için daha önce yazdığım Markdown Kullanımı blog yazıma şuradan ulaşabilirsiniz. VSCode Terminal ile Github Üzerinden Çalışmak başlıklı bir sonraki yazıma şuradan devam edebilirsiniz.
Sorularınız olduğunda yorum kısmına yazarak çözüme kavuşturabiliriz. Bir sonraki yazımda görüşmek dileğiyle..
Kolay gelsin.
Kaynaklar:
- https://www.marcelofossrj.com/reference%20card/2017/07/26/git-reference.html
- https://www.geeksforgeeks.org/how-to-set-git-username-and-password-in-gitbash/
- https://dev.to/aciklab/git-ve-github-nedir-nasil-kullanilir-bmk
- https://rcpyesilkaya.medium.com/git-github-temel-komutlar%C4%B1-nelerdir-b73a8eeb1073
Son Yorumlar..