Teknoloji ve Hayata dair günceler

Son Yazılar


Kategoriler


Son Yorumlar..


Temel Git Yapısı Kullanımı

Kemal İKİZOĞLUKemal İKİZOĞLU

Herkese 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:

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:

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:

Eğitim ve teknoloji haberlerini, ilginç ve önemli bilgileri, kendimi geliştirdiğim alanlardaki öğrendiğim tecrübelerimi blogumda paylaşıyorum. Öğrenmekten ve paylaşmaktan zevk alıyorum.İnandığım bir şey var ki istisnalar hariç, hiçbir şey imkansız değildir. Mucizeler için zaman gerekir! Bu benim yaşam felsefem.

Yorumlar 0
İlk yorumu yazmak ister misin?