Türkçe Git Rehberi 1— Git Nedir —Git Kullanımı— Git Servisleri — Git Komutları

Ubeyde Akgül
Huawei Developers - Türkiye
5 min readOct 16, 2020

--

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. 2005 yılında başta Linus Torvalds olmak üzere Linux çekirdeğini de kodlayan ekip tarafından geliştirilmiş, GNU Genel Kamu Lisansı’nın 2. sürümüyle lisanslanmış bir yazılımdır. Ve bugün, milyonlarca şirket tarafından verimli kod yönetimi ve projelerinin sürüm kontrolü için kullanılmaktadır.

Diğer bir deyişle; yazılım geliştirme sürecinde, kullanılan dosyalarda yapılan değişiklikleri zamana bağlı olarak kaydedip, takibini ve yönetimini yapmanıza imkan veren bir versiyon kontrol sistemidir.

Kısaca Git bize neler sağlar :

· Versiyonların düzgün ve kontrol edilebilir bir şekilde takip edilebilmesi

· Aynı proje üzerindeki aynı veya farklı kısımlarda dallanma sistemi ile çalışarak yapılanları birleştirme.

· Uyumlu ekip çalışması, proje üzerinde ortak-çoklu çalışma kolaylığı.

· Eski versiyonlara dönebilme.

· Dosyayı kim, ne zaman, neden, nasıl değiştirmiş görebilme

· Düzenli ve verimli şekilde yedekleme

· Değişiklik ve işlem yetkilendirmeleri

Benefits Of Git

Git’in çalışma mantığı ve çalışma alanları dört katmandan oluşur :

1 — Working Tree : çalışma alanı, çalışmakta olduğunuz klasör. ( Working Directory olarak da adlandırılır )

2 — Staging Area : Projenizde bazı değişiklikler yaptığınız fakat bu değişiklikleri henüz kaydetmediğiniz alan.

3 — Local Repository : Lokal depolama alanı. Değişiklikleri local repository üzerine yazarak kaydettiğimiz katman, yani commit operasyonlarınınd yapıldığı kısım.

4 — Remote Repository : Uzak depolama alanı. Değişiklikleri uç — uzak repository üzerine yazarak kaydettiğimiz katman, yani push-pull operasyonlarınınd yapıldığı kısım

Git working architecture

Git dosyalar arasında değişiklik içerenleri (modified) otomatik olarak algılar. Git ile takip edilen dosyalar tracked, takip edilmeyen ve sürüm kontrolü altında olmayan dosyalar unTracked olarak adlandırılır. Git veri akışı nasıl sorusu için aşağıdaki görseli inceleyebilirsiniz:

unTracked, unmodified, modifed, staged (staging area)

Bazı dosyaları git’in umursamaması ve repository ile entegre edilmemesi istenebilir, bu durumda bu dosyaların isimleri proje ana dizinindeki .gitignore dosyasına yazılarak bu işlem sağlanır. Örnek bir .gitignore dosyası içeriği

# Belirli bir dosyayı es geçmek için
config.php

# Belirli bir dizini es geçmek için
logs/

# Belirli bir uzantıya sahip dosyaları es geçmek için
*.styl

# error.log dosyaları dışındaki log dosyalarını es geç için
*.log
!errors.log

Git Servisleri — Remote Git Sunucuları-Git Depolama Servisleri

GitHub

2008 yılında kurulup 2018 yılında Microsoft tarafında satın alınan servis açık kaynak projeler için en populer depolama servisi haline gelmiş durumda. Ücretsiz bir şekilde private-public repository ler açarak kullanabilirsiniz. Private projelerinizde 3 kişiye kadar paylaşım ücretsiz olarak sağlanıyor. Kurumlar için enterprise versiyonu da uygun fiyatlarla mevcut.

Yazılımcıların adeta cv-portfoliosu gibidir ve aynı zamanda baş ucu kaynağı. Sahip olduğu milyonlarca kullanıcı ve repository içinden trending olanları GitHub Trending üzerinden erişiminize de sunuyor. Ek olarak Most Popular Languages On Github linkine de göz atabilirsiniz.

GitLab

GitLab’ı GitHub’tan ayıran özelliği; sınırsız kod deposu ve sınırsız depolama alanı sağlaması. Ücretsiz bir şekilde sayısız public — private repository açarak kullanabilirsiniz. Ek olarak sistem aktivitelerini filtreleyebilir, commit işlemlerini grafik olara görebilir, sunduğu analiz ve raporlama araçlarını kullanabilirsiniz. Bitmiyor, Özel bilgilendirme servisleri (mail, Slack, ToDos v.b.) ve JIRA entegrasyonu da sunuyor. OnPrem (on-premise) olarak kendi sunucunuzda da ücretsiz şekilde kullanabileceğiniz servisin ücretli ve support sağlayan versiyonu da mevcut. Ayrıca bu versiyonda serviste proje yönetimi, iş yönetimi gibi araçlara sahip olabiliyorsunuz.

Bitbucket

Jesper Nohr tarafından geliştirildikten sonra 29 Eylül 2010 tarihinde Atlassian (JIRA, Confluence, Bamboo) firması tarafından satın alınan servis private projelerinizde 5 kişiye kadar paylaşım ücretsiz olarak sağlanıyor. Ayrıca Pipeline özelliği ile kod deploy işlemleri otomatik hale getirilebilir. Ek olarak kod içerisinde arama yapbilme özelliği, çoklu deploy özelliği ve geniş dosya saklama yeteneği (LFS) de mevcut. Bitbucket Cloud, kendi sunucuz yada bir veri merkezi üzerinde kullanabilirsiniz.

Proje ve repository ile ilgili birçok ayarlamayı Git servislerinin proje repository web sayfaları üzerindeki Settings bölümünden gerçekleştirebilirisiniz.

Örneğin ; Default Branch belirleme, Protected Branch ayarlama, Push yetkilendirme, Merge yetkilendirme, Git kullanıcı ve rol yetkilendirmeleri, Git - CI/CD süreçleri entegrasyonu vs gibi ve daha fazlası.

Daha fazla ayrıntı için :

Repository permission levels on GitHub,

Managin Repository Settings on GitHub,

Git Repository Permissions on GitLab,

Project Settings on GitLab

Git Kurulumu

Kurulum için Git Download linkine giderek işletim sisteminize uygun bir versiyon indirmeniz ve basit adımlarla kurulum yapmamız gerekiyor.

Git ile çalışabilmek içinmak için GitBash ( Git’in kendi komut satırı arayüzünü - Git Command Line Interface) veya görsel kullanıcı arayüzü olan masaüstü uygulamalar (GitHub Desktop, SourceTree, GitKraken, Auress, Tower vb) kullanabilirsiniz.

Görsel Git İstemcileri — Git Masaüstü Uygulamaları

Git kullanımını, değişikliklerin takibini, yapılacak işlemleri daha pratik, eğlenceli ve kolay hale getiren masaüstü uygulamaları.

Git komutlarının kullanımını öğrendikten sonra görsel arayüzü olan masaüsyü uygulamalardan bir tanesini mutlaka kullanmanızı öneriyorum.

Benim hoşuma giden free kullanımdaki bazı Git masaüstü uygulamalarını aşağıda paylaştım, diğerlerini Git UI Clients linkinden inceleyebilirsiniz.

GitHub Desktop ( mac — windows ) : Free

GitHub Desktop UI

GitKraken * ( mac — windows — linux ) : Free / $49

GitKraken UI

Atlassian SourceTree ( mac — windows ) : Free

Atlassion SourceTree UI

Fork ( mac — windows ) : $49.99

Fork

Auress ( mac — windows — linux ) : Free

Auress UI

Git araçları dışında bazı zamanlarda dosyalar arasındaki farkları daha net görmek isteyebilirsiniz. Bunun için en çok tercih edilen Diff / Merge araçlarını — uygulamalarını da kullanmanız fark analizi aşamasında size küçümsenmeyecek zaman ve katkı sağlayacaktır.

En çok kullanılan Diff & Merge araçları, kod karşılaştırma araçları :

WinMerge , UltraCompare, DiffMerge, SemanticMerge, AraxisMerge, BeyondCompare

Bu yazımda Git nedir, Git yapısı, Git katmanları, Git servisleri, Git masaüstü uygulamaları, Görsel Git istemcileri, Git kurulumu ve Git konfigürasyonu gibi Git hakkındaki temel bilgiler aktarmaya çalıştım.

Serinin ikinci yazısında; daha detaylı olarak Git kullanımı, Git komutları, Git kodlarının ne işe yaradığı ve Git kodları nasıl kullanılır, Git’te hangi işlemi nasıl yaparız hakkında bilgiler paylaşacağım.

--

--