Git ve Github

ABDULLAH ATCILI
Machine Learning Turkiye
5 min readFeb 16, 2022

Git ve Github

Bu yazımda, versiyon kontrollerinde ve repository (depo) paylaşımlarında önemli yer tutan ve piyasayı domine eden Git ve Github’dan bahsedeceğim.

Konunun detaylarına girmeden önce, Git kurma işlemi ile başlayalım. Burada bulunan linkten; Windows, MacOS ve Linux için ilgili kurulum dosyasını indirerek, Git’i bilgisayarınıza kurabilirsiniz (Sürekli next-next diyerek kurulumu tamamlayabiliriz.)

Aslında günümüzde çok fazla versiyon kontrolü sistemi bulunmaktadır. Ama bunların en geniş kapsamlısı ve kullanılanı olarak Git’dir. Git, küçük start-up’lardan büyük şirketlere kadar çok geniş bir pazarda kullanılmaktadır.

Git Nedir?

Git, kaynak kod dosyalarındaki değişiklikleri izlemek ve bu dosyalar üzerindeki çalışmaları birden çok kişi arasında koordine etmek için tasarlanmış dağıtık bir versiyon kontrol sistemidir (distributed version control system).

Şekil -1

Git, öncelikli olarak yazılım geliştirmede kaynak kodu yönetimi için kullanılıyor olsa da, herhangi bir dosya kümesindeki değişiklikleri takip etmek için de kullanılabilir.

Git ayrıca, hiçbir kod değişikliğinin kaybolmaması için veya yanlışlıkla test edilen bir şeyin üzerine yenisinin yazılmaması için bu işi koordine etmeye yarayan bir sistemdir.

Git versiyon kontrolü ile, kendi lokal makinenizde değişikleri takip edebileceğiniz anlamına gelir. Ayrıca Git’te tanıtılan “push” komutu ile kendi lokalinizde olan değişiklikleri uzak branşlara (remote branch) gönderebilirsiniz.

Neden Git’e ihtiyacımız var?

Git, en yaygın olarak kullanılan sürüm kontrol sistemidir. Git, dosyalarda yaptığınız değişiklikleri izler, böylece yapılanların bir kaydını tutar ve ihtiyaç duymanız halinde belirli sürümlere geri dönebilirsiniz. Git ayrıca, birden çok kişinin yaptığı değişikliklerin tek bir kaynakta birleştirilmesine izin vererek işbirliğini kolaylaştırır.

Yani ister sadece sizin göreceğiniz bir kod yazın, ister bir ekibin parçası olarak çalışın, Git sizin için faydalı olacaktır.

Github nedir?

Git, versiyon kontrol sorununu çözerken, Github kodların depolanması sorununu çözer. Kodunuzu ve kod incelemelerini destekleyen “pull request” ile bazı yararlı işlevleri saklamak için bir yer sağlar. Çoğu açık kaynaklı kod artık Github repolarında (depolarına) kaydedilmektedir.

Yukarıda verilen linkten, Git kurulumu yapıldıktan sonra, herhangi bir klasör içinde veya masaüstünde sağ tıklanarak “GitBash Here” sekmesine tıklanır. Bu bize Git prompt’unu açacaktır.

Açılan sayfada “git version” yazarak, bilgisayara yüklü Git versiyonu görülebilir.

Şekil -2

mkdir filename : filename adında klasor oluşturur

cd filename : filename klasorü içine gider

Git’de ilk defa işlem yapacağımızdan dolayı kendimizi tanıtalım.

git config — — global user.name “adınızı_yazınız”

git config — — global user.email “email_adresinizi_yazınız”

git config — — global — — list

listeleme işleminden sonra adımız ve mail adresimiz ekranda gösterilecektir.

Peki buraya kadar tamamsak, bir github hesabı alalım. Ve oturum açalım. Github sayfamızda New Repository sekmesinden bir repo oluşturalım ve README.md dosyasını da ekleyelim.

Şekil -3

Repo oluşturduktan sonra, git promptu aracılığıyla github’da oluşturduğumuz bu repomuzu, bilgisayarımıza klonlayalım. (Lütfen farkında olalım, pwd ile gördüğümüz dosya yolu neresi ise, klonlama işlemi o klasöre yapılacaktır.) Ama öncesinde githubda oluşturduğum reponun linkini alıyorum.

Şekil -4

Yukarıda işaretlediğim linki kopyaladım.

Ben daha önce oluşturmuş olduğum python klasörümün içine oluşturduğum github_calismalarım klasörü içine klonlama işlemini yapacağım. Git prompt üzerinde ilgili klasöre geçiş yapıp klonlama işlemini gerçekleştiriyorum.
(ls komutu ile klasör içinde dosyaların listesini görüyorum.)

Şekil -5

Evet şu anda, github üzerinden oluşturduğumuz repoyu lokalimize indirmiş bulunuyoruz. Şu an itibari ile Gihub’dan nasıl repo indirebileciğimiz öğrenmiş olduk. Aslında Şekil-4'te linki kopyaladığımız yerin hemen altında
Download ZIP sekmesi ile de, repo’yu ziplenmiş olarak indirebiliriz.

Şimdi isterseniz “git status” komutu ile bir inceleme yapalım.

Şekil -6

“git status” komutu ile, çalıştığımız klasör, yükleme alanı ve repo arasındaki farkların olup olmadığını kontrol ediyoruz. Yukarıda görüldüğü gibi “git status” komutuna cevap olarak 3 satır geldi. ilk satırda :

On branch main : Main branşında çalışıyoruz. ikinci satırda:

Your brach is up to date: Branşımızın güncel olduğunu (origin/master ile kıyaslayarak) görüyoruz, son satırda ise:

nothing to commit, working tree clean: commit edecek herhangi bir şeyin olmadığını tespit etmiş oluyoruz.

Şekil -7

Özetle, “git status” komutu ile; çalıştığımız klasör, yükleme alanı, repo ve uzak repo arasında bir fark olup olmadığını görüyoruz.

Şimdi isterseniz bir commit yaparak yolumuza devam edelim.

Çalıştığım klasöre bir adet txt dosyası yükledim ve “git status” durumunu kontrol ettim.

Şekil -8

Görüldüğü üzere bir tane traklanmamış dosya tespit etti. Yani çalışma klasörümde yeni bir dosya varlığı mevcut ve bu klasör yükleme alanı ve repo’da bulunmuyor.

Şekil -9

Bir önceki paragrafta açıkladığım durumun şekli yukarıdadır. Şimdi artık “git add” komutu ile yeni eklenen dosyayı yükleme alanına taşımalıyım.

Şekil -10

“git add dosyaadı” ile ekledikten sonra “git status” durumunu kontrol ediyorum ve yukarıda görüldüğü gibi commit edilecek bir yeni dosyanın olduğu gösteriliyor. Yani dosyam şu anda yükleme alanında bulunuyor.

Şekil -11

Şimdi artık dosyam commit edilmeye hazır. “git commit” ile dosyamı commit edebilirim. Şunu belirtmeden geçmek istemiyorum, commit ettiğimiz kısımda yorum belirtmemiz önem arz etmektedir. Çünkü ilk 1 veya 2 commit de ne yaptığımızı hatırlayabiliriz belki ama 10–20 committen sonra artık bunları hatırlamak imkansız hale gelebilir. Ayrıca da bizim repolarımızı inceleyen kişilere fikir vermesi açısından buradaki yorumlar önemlidir.

Şekil -12

Dosyayı commit ettim ve sonra “git status” durumunu inceliyorum. commit ettikten sonra 1 dosyanın değiştiğini görüyorum ve status de ise commit edilecek bir şeyin kalmadığını, branşımın, origin/master’dan 1 commit önde olduğunu görüyorum. Yani dosyam yükleme alanından repo alanına geçiş yaptı. Artık yapacağım son hamle bu değişikliği github’a push ederek, tüm dünyaya duyurmak.

Şekil -13

Evet görüldüğü üzere, dosyam, github’a push edildi. Burada önemli not, ben daha önce kullanıcı adı ve şifremi girdiğim için bana sormadı. İlk defa push edecek kişiler için, github kullanıcı adı ve şifresi isteyecektir.

Şekil -14

Gördüğümüz üzere start.txt dosyası artık github repomda bulunmaktadır.

Referanslar :

--

--