git nedir ?
Git, yazılım geliştirme süreçlerinde kullanılan, hız odaklı, dağıtık çalışan bir sürüm kontrol ve kaynak kod yönetim sistemidir. İlk sürümü Linux çekirdeği’nin geliştirilmesinde kullanılmak üzere 2005 yılında bizzat Linus Torvalds tarafından tasarlanıp geliştirilmiş, son Eclipse kullanıcı topluluğu anketi verilerine göre 2013 yılı itibarıyla %30 pazar payına ulaşmıştır
Git sürüm kontrol sistemini kullanan her bir çalışma dizini (proje), internet erişimi ya da merkezi bir depo olmaksızın tüm tarihçeyi tutan ve sürüm kontrol sisteminin tamamını içinde barındıran tam yetkili birer depodur. Ayni çalışma dizininin birçok depodan birindeki kopyasında yapılan değişiklikler diğerlerine güven temelli bir değerlendirmeyle kabul edilir; Güvenilmeyenden değişiklik alınmaz, o kendi ayrı sürümünü geliştirmeye devam eder.
Git’in şu anki yazılım bakıcılığını Junio Hamano üstlenmiş durumda. Git, GNU Genel Kamu Lisansı’nın 2. sürümüyle lisanslanmış bir özgür yazılımdır. 2.26.0 sürümünden itibaren Türkçe dil desteği sunmaktadır.
der Wikipedia daha da basit haliyle
git uzak yada local sistemlerde çalışabilen bir versiyon ve kod kontrol sistemidir grup ya da bireysel çalışmalarda kodlarımızın her zaman tüm değişiklerini kaydeder ve ayrı ayrı görebilmemiz için bunu bize basit bir şekilde gösterebilen ve yönetebilmemizi sağlayan yapıdır.
Genel yapı
Git’i depoları bir arada barındıran bir binaya benzetebiliriz bu binada birden çok depo ve depoların içinde birden çok alan olabilir yani depolar (repo) branchlar ise alanlardır. Branchlarda istediğimiz şeyi tutup geliştirip deneyip ana alanımızda sergileyebilriz bu ana alana şimdilerde “main” branch deniyor öncesinde “master” deniyordu (master adından vazgeçilmesinin sebebi kölelik çağrışımı).
Kurulum
önce git’i indirelim ve kurulumunu sitedeki gibi yapalım
Git artık cihazımıza yüklendi şimdi yapmamız gereken git’e kendimizi tanıtmak bunun için iki küçük komutu terminalde çalıştırıyoruz
git config --global user.name "bymfd"
git config --global user.email "frukolosko@gmail.com"
bunu da hallettiğimize göre artık daha detaylı bakabiliriz.
init (repo oluşturma)
boş bir klasör oluşturun ve proje isminizi verin klasörün içine girip dilediğiniz araçla git’e erişin ve şu komutu yazın:
git init
evet sadece bu komut ile artık bir local bir git reponuz var. Ancak bu repoyu maalesef şuan tüm insanlıkla paylaşamazsınız. bunun için neredeyse evrensel denecek birkaç araaç kullanabilirsiniz bkz:github ,bkz:gitlab ikisininde kullanımı neredeyse aynıdır .Microsoft’un satın aldığı github oldukça popüler,bu iki araç içinde tek yapmanız gereken anasayfanızda yeni repo butonuna basıp isimlendirin bir readme.md dosyası ekleyin veee sizin için bir repo oluşturup bunu kendi sunucularında saklar şimdi bu oluşturduğumuz repoyu localde nasıl değiştireceğimize bir göz atalım.
Clone(repo kopyalama)
böyle sihirli bir şey bir anda çalışan kodumuz olur :D
adındanda anlaşılacağı üzere bu komut bir repoyu klonlamamızı sağlar bir yansımasını alırız yani aynen şöyle işliyor:
git clone https://github.com/bymfd/muhal.git
gir clone repo kaynağı olarak bakabiliriz olaya bu git kaynağından tüm dosyaları bizim için kendi klasörüne indirir ve üzerinde yaptığımız tüm değişiklikleri kaynaktan bağımsız ve kaynakla yürütmemizi sağlar.
şimdi olaya dahil olma zamanı cloneladığınız repoda hemen bir değişiklik yapın ve dosyayı kaydedin. hemen ardından yeni komut :
add(izlenecek dosyaları ekleme)
git add dosyaismi
ya da git add *
ister tek bir dosya ekleyin isterseniz tüm dosyaları izleme listesine alın yaptığınız tüm değişiklikler bundan sonra git tarafından kayıt altına alınacaktır haydi bunları sunucuya geri gönderelim.
commit (değişiklikleri işleme)
bu aslında şöyle oluyor
git commit -m "some bug fixed"
kodda yaptığımız değişiklikler ile ilgili açıklama kısmımız başkası için değil kendimiz içinde önemli bu kısım çünkü eğer ne değişiklik yaptığımızı başlığa bakarak anlarsak geri dönmek zorunda kalırsak işler kolaylaşır :D
Tamam artık gerçekten değişikleri sunucuya gönderme zamanı
push (repoya gönderme)
Oldukça basit “it” pushunuz gibi birşey işte kodu repoya göndermek için pushunuz
kullanımı git push
alternatif olarak özellikle bir branchda kod değişikliği yapmışsak git push origin branchismi
birde github üzerinde kalem işaretine basıp değişikliği kaydedin bunu local repoya çekmek için ise evet pullayacağız.
</img>
pull (repodan çekmek)
sunucuda yapılan değişiklikleri local makinemizde görmek için hiç çekinmeden git pull
diyebiliriz değişiklik yapılmış tüm dosyaları bizim için güncelleyecektir.
# merge </img>
Haa olurda sunucudan çekerken yada gönderirken merge diye bir ibareye rast gelirseniz şimdilik şunu bilmelisiniz merge harmanlamak gibi bir şey doğru yapılmadığnda ortalık darma duman olabilir ama biraz çalışarak bunu da halledebilirsiniz çünkü git hızı ve basitliği önemser mergelemekten korkmayın bunu başka bir yazıda tekrar ele alacağım
şimdilik git 101 bitmiştir esen kalın.