Git-github ve temel komutlar
Version Kontrolü(VCS) nedir?
Birden fazla dosya üzerinde yapılan ekleme, silme, değiştirme gibi değişikliklerin takip edilmesi ve gerektiği durumlarda eski versiyonlarına geri dönülmesi anlamına gelir. Kodda ki değişikliklerin takibinin kolaylaşması ve yapılan değişikliklerde ki çakışmaları göstermesi gibi sebepler ile kullanılır.
(Versiyon dosyaların en son ki kayıt altına alınmış halleri)
Git nedir?
Git dağıtık versiyon kontrol sistemidir. Bir proje üzerinde çalıştığınızı düşünün ve sizinle birlikte bu projede çalışan çok fazla sayıda yazılımcı var. Bu projede yaptığınız değişiklikleri veya eklemeleri/çıkarmaları git belirli durumlara göre versiyonlayarak yönetici tarafından onaylandığı takdirde ana depoda birleşmesini sağlar. Orjinal dosyanın zilyon tane kopyası gerekmeksizin kullanabiliriz.
Dolayısıyla Git kodumuzda yaptığımız değişiklikleri takip etmemize,ve kodu birden çok kişi arasında senkronize etmemize yardımcı olur.
Github nedir?
Git ile Github aynı şey değildir. Git version kontrol sistemi ancak Github bu VCS ’ler için uzak bir depolama alanıdır(repository). Github, Git ile entegre bir depolama alanıdır. Dünya genelinde ki işbirliğe dayalı en büyük çevrimi depolardan birisidir. Projeleri verimli işbirliğine dayalı şekilde yönetmek amacıyla kullanılabilir.
Github hızlı ve güvenlidir. Çoğu bilinen firmalar Github kullanır. Herkese açık depo alanı ücretsizdir. Yapılan değişiklikler anlık olarak raporlanabilir (e-posta ile)
Git’in diğer Version Control sistemlerinden farkı:
Eğer Git kullanıyorsanız proje kodlarını internet bağlantınızın olmadığı anda bile commit atabiliriz çünkü herkesin ayrı repository ’si mevcut . Ayrıca Git merge ve branching işlemlerini çok daha hızlı yapabiliyor.
Peki git ’in çalışma mantığı nedir?
Git ‘in iş akışında 4 temel öğe vardır. Üstteki resimden de anlayabileceğiniz gibi bunlar: Working Directory, Stating Area, Local Repository, Remote Repository
Working Directory(Çalışma dizini) : Burada yapılan değişiklikler veya eklemeler git ‘e kaydedilmez. Değişiklikler ilgili kişinin bilgisayarı ile sınırlı kalır.
Staging Area : Git dosyasında ki meydana gelen ilgili değişiklikleri izlemeyi ve kaydetmeyi sağlar. Kaydedilen değişiklikler .git dizinine yansır.
Git Repository: Local Repository temel olarak tüm commitleri görebileceğimiz yerdir.
En çok kullanılan temel Git komutlarına bakalım:
✪ git init: Yeni bir git dizini oluşturmak için kullanılır.
✪ git config: Git config kullanıcı adı, mail, dosya formatları gibi yapılandırma ayarlarını git config komutu ile belirleyebiliriz. Kullanımı:
$ git config --global user.name "Mukaddes Demirtas"
$ git config --global user.email m.ddemirtas@hotmail.com
✪ git add: Oluşturduğumuz dizine dosyalarımızı eklemek için kullanılır. Kullanımı:
git add temp.txt
git add .
Yukarıda görüldüğü gibi temp.txt dosyasını bu şekilde dizine eklemiş bulunuyoruz.
✪ git rm: Dosyaları dizinden kaldırmak için kullanılır. Kullanımı:
git rm temp.txt
Bu defa temp dosyasını dizinimizden kaldırdık.
✪ git commit: Commit işlemi uzak sunucuda ki repository de değişiklik yapmaz çünkü yerelde gerçekleşen bir işlemdir. Kullanımı:
git commit –m “Gözükmesi istenilen commit mesajı”
Burada tırnak içerisinde verilen mesaj commit mesajıdır. Bu kısma hangi kısımlarda değişiklik yapıldığı yazılır.
✪ git status: Repositorinize henüz eklenmemiş dosyaların listesini gösterir. Kullanımı:
git status
✪ git remote: Dosyaları uzak sunucu ile eşleştirilmesini sağlamak için git remote kullanıyoruz. Kullanımı:
git remote –v
Yukarıdaki komut uzak sunucuları listeler.
git remote add origin
Yerel dizini uzak sunucuya bağlanmasını sağlar.
✪ git push: Gerçekleştirilen tüm değişiklikleri uzak sunucuya erişimi olan herkes tarafından görüntülenmesi adına commitlediğimiz dosyaları uzak sunucuya eklediğimiz koddur. Kullanımı:
git push origin master
✪ git pull: Bu işlem ise tahmin edeceğiniz üzere git push kodunun tam tersi kullanıma sahiptir. Yani uzak depoda bulunan tüm değişiklikleri yerel çalışma dizinine çekmek için kullanılan koddur. Kullanımı:
git pull
Son olarak neden git kullanmalıyız onu açıklayalım:
✪ Birden fazla kişi eş zamanlı olarak aynı projede çalışabilir yada farklı zamanlarda kod birleştirmek oldukça kolaydır.
✪Bilgisayarda fazla yer kullanmaz ve hızlı çalıır.
✪Git ‘de her kullanıcının bilgisayarında projenin bir kopyası mevcuttur bundan dolayı offline çalışabilir.