Open
Git nedir? Nasıl Kullanılır?

Git, bir versiyon kontrol sistemidir.Yazılımların sürümlerini, kontrollerini ve yönetimini sağlar.
Aynı zamanda takım çalışması ya da bireysel çalışmalarla yeni proje oluşturur, projeye kişiler ekler, kişilere görevler atar, analizler oluşturur ve yaptıkları işleri kotrol eder, projedeki geliştirilen yeni kodları, test etmek amacıyla dallar oluşturur, proje kodlarını dinamik bir havuzda barındırmaya olanak sağlar.
Linus Torvalds tarafından oluşturulmuştur.

Git'in Büyük Avantajları
1 projemiz var ve ekip çalışması ile geliştiriyoruz.Proje, ortak havuzda yeralıyor.
Ekipten biri x dosyasını güncellerken diğeri de farklı bir güncelleme yapıyor.
Bu durum da, en son tarihte güncellenen dosya, bir önceki değişikliklerin kaybolmasına sebep verecektir.
Git bu çatışma sorununu, ortadan kaldırıyor.Size karşılaştırma olanağı gösteriyor.

Bazen yazdığımız bir kodu kaldırıp yeni bir kod ile güncelliyoruz.Daha sonra eski kaldırdığımız kod'a geri dönmek istiyoruz.
Üzerine ekledeiğimiz dosyayı, eski versiyonu ile görmemiz gerekiyor. Git size bunda da yardımcı oluyor.
Git, dosyaları versiyon-versiyon tutmaya yarayan sistemin adıdır.

Projeyi havuzda tutan depo alanı ise GitHub'dır.
Proje üzerindeki güncel gelişme ve değişiklikler bu web katmanında hayata geçer.

Githubdan faydalanmak için github sitesi üzerinden hesap oluşturmak yeterlidir.

Elimizdeki bir projeyi, GitHub'a ekleyelim
https://github.com/ sitesi üzerinden kullanıcı-login işlemimizi gerçekleştirelim. Yoksa kullanıcı hesabı oluşturalım.
Karşımıza çıkan sayfadan, "Create New Repository" seçeneğine tıklayalım.(Yeni bir depo ekle)

Repository Name: bu kısıma proje için Bir isim verelim
Description: açıklama sekmesine bir açıklama yazalım.(zorunlu değildir)
Create Repository buttonuna tıklayıp tamamlayalım.
Karşımıza oluşturduğumuz deponun ilgili sayfası çıkacaktır
https://github.com/kullanici_adiniz/proje_adiniz
Bize aktarım işlemlei için kısa bilgiler gösterir.
Tabi yeni bir proje oluşturacağımız gibi, var olan projemizi de ekleyebiliriz.
Bu sayfayı açık bırakalım.Az sonraki örneğimizde, bu sayfadaki kısa komutlara gerek duyacağız.

git remote add origin https://github.com/kullanici_adi/web_projem1.git
git push -u origin master

Github sitesine, bağlanabilen bir yapı oluşturmak için, kullanımı basit 2 programdan yararlanabiliriz

İlki Desktop.Github Programı

https://desktop.github.com/ sitesinden GitHup Desktop programını bilgisayarımıza indirelim.
İndirdikten sonra bilgisayar da çalıştıralım. Uygulama aynı anda sağ click panelimizde de, git ikonları oluşturacaktır.
İkinci kullanımı basit programımızGithub Extensions'dır.< br /> İnternette, github extensions diye arama yapıp, ilgili programı indirelim, bilgisayarımıza kuralım.

Githubdaki projeyi, bilgisayarımızdaki lokal bir klasöre nasıl klonlarız?

Tanıttığımız iki programdan herhangi birini açalım, githup desktop ya da git extensions.
File (start) -> Clone Repository
ve açılan penereden URL ve projeyi klonlaştıracağımız klasör adını belirtmemiz yeterlidir.
Repository to clone: https://github.com/kullanici_adi/proje_adi.git (githubdaki .git proje adı) Destination: Projeyi klonlayacağınız klasör seçme sekmesi.

Klonladığımız projeye, değişiklikler uygulayıp, Github sitesine nasıl entegre ederiz?

Git Extensions ile çalışıyorsak, projeyi açalım ve aşağı tarafta Console sekmesini ulaşalım.
Githup.Desktop ile çalışıyorsak, klonladığımız projenin ana-klasörüne girelim,sağ click ve Git Bash Here seçeneğini tıklayalım.
Her iki programda da karşımıza çıkan, konsol penceresine, güncellemeleri entegre etmek için bir kaç satır kod gireceğiz.


$ git init (.git Repository oluşturur.İçinde proje ile ilgili bilgiler tutar.)
$ git add * (bulunduğu klasördeki elemanları ekler)
$ git commit -m "açıklayıcı cümle" (gördüğümüz işlemi açıklayan bir cümle girebilirsiniz.Zorunlu değildir.)

Karşımıza, create ile başlanan komutlar gelecek.Bunlar, dosyaların kayıt edildiğini(commit işlemlerini) gösterir.
Hatırlarsak, github sayfasında repository oluşturmuştuk.Karşımıza bir sayfa çıkmıştı ve var olan dosyalarımızı şu komutlarla kendisie entegre etmemizi belirtmişti.
$ git remote add origin https://github.com/kullanici_adi/web_projem1.git
$ git push -u origin master (karşı tarafa göndermek için gereken push komutu)
Aynı komut satırlarını uygulayalım.

Voila! İşte, güncellediğimiz dosyaları başarılı bir şekilde github sitesine, erişimini sağladık.
İlgili internet sayfayı refresh edelim ve yenilikleri görelim

Hata ve Düzeltmeler

Push işlemi sırasıda -> Git push fatal: repository not found hatası aldıysanız;
git remote set-url origin https://github.com/proje_adi.git
git push -u origin master
ve ya
git push --set-upstream origin master

remote: Permission to proje_adi.git denied to kullanıcı_adınız
Muhtemelen özel bir depoya gitmeye çalışıyorsunuz. Bu durumda, yöneticiden Collaborator erişiminin kimliğinin doğrulanmasını istemeniz gerekir.

Permission denied uyarısı veriyorsa https den ssh değiştirelim:
git remote set-url origin git@github.com:proje_adi.git
git push -u origin master --force

Eğer github da iki kullanıcınız var ve bunlarla giriş yapıp github programıyla işlem yapmak istediğinizde, bu kullanıcı kimlikleri karıştırmış olabilir.Bunun için;
Window kimlik bilgileri yöneticisinden, windows sekmesi ve ilgili github kulanıcınızı kaldırıp programda giriş yapınız.

02.02.2020