Neler yeni

Yazılım Forum

Tüm özelliklerimize erişmek için şimdi bize katılın. Kayıt olduktan ve giriş yaptıktan sonra konu oluşturabilecek, mevcut konulara yanıt gönderebilecek, itibar kazanabilecek, özel mesajlaşmaya erişebilecek ve çok daha fazlasını yapabileceksiniz! Bu hizmetlerimiz ise tamamen ücretsiz ve kurallara uyulduğu sürece sınırsızdır, o zaman ne bekliyorsunuz? Hadi, sizde aramıza katılın!

Geliştiriciler İçin Kapsamlı Git Temelleri ve Etkili Sürüm Kontrolü Rehberi

Git, yazılım geliştirme dünyasının vazgeçilmez bir parçası haline gelmiş, dağıtık bir sürüm kontrol sistemidir. Geliştiricilerin kod tabanındaki değişiklikleri takip etmelerini, farklı sürümler arasında geçiş yapmalarını ve ekip halinde sorunsuz bir şekilde çalışmalarını sağlar. Peki, Git tam olarak nedir ve neden bu kadar önemlidir?

Git, Linus Torvalds tarafından 2005 yılında Linux çekirdeği geliştirilirken ortaya çıkarılmıştır. Merkezi sürüm kontrol sistemlerinin (SVN, CVS gibi) aksine, Git her geliştiricinin kendi yerel makinesinde kod tabanının tam bir kopyasına sahip olmasını sağlar. Bu "dağıtık" yapı, çevrimdışı çalışmaya olanak tanır, merkezi bir sunucunun çökmesi durumunda veri kaybını önler ve işbirliğini çok daha esnek hale getirir. Her geliştirici, kendi "deposu" üzerinde bağımsız olarak çalışabilir ve değişikliklerini daha sonra ana depo ile birleştirebilir.

Neden Git Kullanmalıyız?
Git kullanmanın birçok avantajı vardır:
  • Hız: Git, büyük projelerde bile inanılmaz hızlıdır çünkü işlemlerin çoğu yerel olarak gerçekleştirilir.
  • Veri Bütünlüğü: Git, her dosya ve dizin için SHA-1 hash değerleri kullanarak veri bütünlüğünü sağlar. Bu, kod geçmişinizin güvenli ve değişmez olduğu anlamına gelir.
  • Dallanma ve Birleştirme (Branching & Merging): Git'in en güçlü özelliklerinden biridir. Farklı özellikler üzerinde paralel çalışmak veya deneysel değişiklikler yapmak için kolayca yeni dallar oluşturabilir, bu dalları geliştirebilir ve işiniz bittiğinde ana dalla sorunsuz bir şekilde birleştirebilirsiniz.
  • Dağıtık Yapı: Merkezi bir sunucuya bağımlılığı ortadan kaldırır. Bu, internet bağlantısı olmadan bile çalışabileceğiniz ve bir sunucu arızasının tüm ekibin çalışmasını durdurmayacağı anlamına gelir.
  • Geri Alma Yeteneği: Yanlışlıkla yapılan değişiklikleri veya hatalı commit'leri kolayca geri alabilir, projenizin herhangi bir önceki durumuna dönebilirsiniz.

Git'e Başlangıç: Temel Komutlar
Git'e başlamak için öncelikle bilgisayarınızda kurulu olması gerekir. Kurulum adımları işletim sisteminize göre değişiklik gösterse de, resmi Git web sitesinden (https://git-scm.com/downloads) kolayca indirebilirsiniz.

Yapılandırma:
Git'i kurduktan sonra, ilk yapmanız gereken kullanıcı adınızı ve e-posta adresinizi ayarlamaktır. Bu bilgiler, yaptığınız commit'lerde kimin değişiklik yaptığını belirtmek için kullanılır.
Kod:
git config --global user.name "Adınız Soyadınız"
git config --global user.email "email@example.com"
Bu ayarlar, tüm Git depolarınız için geçerli olacaktır. Belirli bir depo için farklı ayarlar yapmak isterseniz --global parametresini kaldırabilirsiniz.

Bir Depo Oluşturma:
Yeni bir Git deposu oluşturmak veya mevcut bir projeyi Git ile sürüm kontrolü altına almak için git init komutunu kullanırız.
Kod:
cd /path/to/your/project
git init
Bu komut, projenizin kök dizininde gizli bir .git klasörü oluşturur. Bu klasör, Git'in tüm sürüm geçmişini, dallarını ve yapılandırmasını sakladığı yerdir.

Dosyaları İzlemeye Alma (Staging):
Projenizdeki dosyaları Git'in takip etmesini istediğinizde, onları "staging area"ya (hazırlık alanı) eklemeniz gerekir. Bu alan, bir sonraki commit'inize dahil edilecek değişiklikleri tutar.
Kod:
git add dosyaadi.txt
git add . # Tüm değişiklikleri ekler
git add . komutu, geçerli dizindeki tüm yeni ve değiştirilmiş dosyaları staging area'ya ekler.

Değişiklikleri Kaydetme (Commit):
Staging area'daki değişiklikleri projenizin geçmişine kalıcı olarak kaydetmek için git commit komutunu kullanırız. Her commit, yapılan değişiklikleri açıklayan bir mesaj içermelidir.
Kod:
git commit -m "İlk commit: Projenin başlangıcı"
İyi bir commit mesajı, gelecekte veya ekip arkadaşlarınızın bu commit'in ne yaptığını anlamasına yardımcı olur. Genellikle kısa ve öz bir başlık (50 karakterden az) ve ardından boş bir satır bırakarak daha ayrıntılı bir açıklama şeklinde yazılır.

Durumu Kontrol Etme:
git status komutu, çalışma dizininizin ve staging area'nızın güncel durumunu gösterir. Hangi dosyaların değiştirildiğini, hangilerinin staging area'da olduğunu ve hangilerinin takip edilmediğini (untracked) görebilirsiniz.
Kod:
git status

Geçmişi Görüntüleme:
Projenizin commit geçmişini görüntülemek için git log komutunu kullanın. Bu, her commit'in yazarını, tarihini ve mesajını gösterir.
Kod:
git log
git log --oneline # Daha kısa özet

Dallanma (Branching):
Git'in en güçlü özelliklerinden biri dallanmadır. Yeni bir özellik üzerinde çalışırken veya bir hata düzeltirken, ana kod tabanını (genellikle main veya master dalı) etkilemeden ayrı bir dal oluşturabilirsiniz.
Kod:
git branch yeni-ozellik # Yeni dal oluştur
git checkout yeni-ozellik # Yeni dala geçiş yap
# veya ikisi bir arada:
git checkout -b yeni-ozellik
"Dallanma, Git'in temel taşıdır. Bağımsız geliştirme akışlarına izin vererek ekibin paralel çalışmasını sağlar ve riskleri minimize eder."

Dallar Arasında Geçiş:
Mevcut dallar arasında geçiş yapmak için git checkout komutunu kullanın:
Kod:
git checkout main

Dalları Birleştirme (Merging):
Bir dalda yaptığınız değişiklikleri başka bir dala (örneğin main dalına) entegre etmek için git merge komutunu kullanın. Önce birleştirmek istediğiniz dala geçiş yapmalısınız.
Kod:
git checkout main
git merge yeni-ozellik
Birleştirme sırasında çakışmalar (conflict) meydana gelebilir. Bu durumda, Git size çakışan dosyaları gösterecek ve manuel olarak çözümlemenizi isteyecektir. Çakışmaları çözdükten sonra dosyaları git add ile staging area'ya eklemeli ve git commit ile birleştirme işlemini tamamlamalısınız.

Uzak Depolar (Remotes):
Çoğu zaman, kodunuzu GitHub, GitLab veya Bitbucket gibi uzak bir sunucuda barındırırsınız. Bu, ekip üyeleriyle işbirliği yapmanızı ve kodunuzu yedeklemenizi sağlar.
Uzak bir depoyu eklemek için:
Kod:
git remote add origin https://github.com/kullaniciadi/depoadi.git
Burada origin uzak deponun varsayılan adıdır. İstediğiniz başka bir isim de verebilirsiniz.

Değişiklikleri Uzak Depoya Gönderme (Push):
Yerel commit'lerinizi uzak depoya göndermek için git push komutunu kullanın:
Kod:
git push origin main
Bu, yerel main dalınızdaki değişiklikleri origin adlı uzak deponun main dalına gönderir. İlk kez push yapıyorsanız --set-upstream (veya -u) parametresini kullanmanız gerekebilir:
Kod:
git push -u origin main

Değişiklikleri Uzak Depodan Alma (Pull):
Uzak depoda (örneğin ekip arkadaşlarınızın yaptığı) yeni değişiklikler varsa, bunları yerel deponuza çekmek için git pull komutunu kullanın:
Kod:
git pull origin main
git pull aslında git fetch ve git merge komutlarının birleşimidir. Önce uzak depodaki değişiklikleri çeker (fetch), sonra yerel dalınızla birleştirir (merge).

Değişiklikleri Geri Alma (Reverting & Resetting):
Git, hataları düzeltmek için güçlü araçlar sunar.
  • git revert <commit-hash>: Belirli bir commit'in yaptığı değişiklikleri geri alan yeni bir commit oluşturur. Bu, geçmişi değiştirmeden hatayı düzeltmenin güvenli yoludur.
  • git reset <commit-hash> --hard: Belirli bir commit'e geri döner ve o commit'ten sonraki tüm değişiklikleri siler. DİKKAT: Bu komut yerel geçmişi kalıcı olarak değiştirir ve veri kaybına neden olabilir. Paylaşılan bir geçmişte asla --hard kullanmayın.

En İyi Uygulamalar:
  • Anlamlı Commit Mesajları: Kısa, açıklayıcı ve net mesajlar yazın. "Yapılan değişiklikler" gibi belirsiz mesajlardan kaçının. Bir commit mesajı, yaptığı işi ve neden yapıldığını anlatmalıdır.
  • Küçük ve Sık Commit'ler: Her commit'i belirli bir mantıksal iş birimi olarak tutun. Büyük değişiklikleri tek bir commit'e sığdırmak yerine, onları daha küçük ve yönetilebilir parçalara bölün.
  • Dal Stratejileri: Git-Flow, GitHub Flow veya GitLab Flow gibi bir dal stratejisi benimseyin. Bu, ekibinizin işbirliğini düzenler ve projeyi daha yönetilebilir hale getirir.
  • Düzenli Pull/Fetch İşlemleri: Ekip üyelerinin yaptığı değişikliklerden haberdar olmak için düzenli olarak git pull veya git fetch yapın.
  • .gitignore Kullanımı: Derleme çıktıları, geçici dosyalar, loglar veya hassas yapılandırma dosyaları gibi sürüm kontrolüne dahil etmek istemediğiniz dosyaları .gitignore dosyasına ekleyin.

Sonuç
Git, günümüz yazılım geliştirme süreçlerinin temel taşlarından biridir. Temel komutlarını ve kavramlarını anlamak, hem bireysel projelerinizde hem de ekip çalışmalarınızda verimliliğinizi önemli ölçüde artıracaktır. Pratik yaparak ve farklı senaryolarda kullanarak Git'e olan hakimiyetinizi geliştirebilirsiniz. Unutmayın, Git'in sunduğu olanaklar çok geniştir ve bu rehber sadece bir başlangıç noktasıdır. Daha derinlemesine bilgi için Git'in resmi dokümantasyonunu ve diğer kaynakları keşfetmekten çekinmeyin.
 
shape1
shape2
shape3
shape4
shape5
shape6
Üst

Bu web sitenin performansı Hazal Host tarafından sağlanmaktadır.

YazilimForum.com.tr internet sitesi, 5651 sayılı Kanun’un 2. maddesinin 1. fıkrasının (m) bendi ve aynı Kanun’un 5. maddesi kapsamında Yer Sağlayıcı konumundadır. Sitede yer alan içerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır.

YazilimForum.com.tr, kullanıcılar tarafından paylaşılan içeriklerin doğruluğunu, güncelliğini veya hukuka uygunluğunu garanti etmez ve içeriklerin kontrolü veya araştırılması ile yükümlü değildir. Kullanıcılar, paylaştıkları içeriklerden tamamen kendileri sorumludur.

Hukuka aykırı içerikleri fark ettiğinizde lütfen bize bildirin: lydexcoding@gmail.com

Sitemiz, kullanıcıların paylaştığı içerik ve bilgileri 6698 sayılı KVKK kapsamında işlemektedir. Kullanıcılar, kişisel verileriyle ilgili haklarını KVKK Politikası sayfasından inceleyebilir.

Sitede yer alan reklamlar veya üçüncü taraf bağlantılar için YazilimForum.com.tr herhangi bir sorumluluk kabul etmez.

Sitemizi kullanarak Forum Kuralları’nı kabul etmiş sayılırsınız.

DMCA.com Protection Status Copyrighted.com Registered & Protected