Git Sürüm Kontrolü ⋆ ALexHost SRL

Tüm Barındırma hizmetlerimizde becerilerinizi test edin ve % 15 indirim kazanın!

Ödeme sırasında kodu kullanın:

Skills
03.01.2025
No categories

Git Sürüm Kontrolü

Yazılım geliştirmenin hızlı dünyasında, verimli işbirliği ve kolaylaştırılmış iş akışları çok önemlidir. Git™, geliştiricilere kod değişikliklerini yönetmek, geçmişi izlemek ve her büyüklükteki ekiple işbirliği yapmak için güçlü bir yol sunan en popüler ve yaygın olarak kullanılan sürüm kontrol sistemi olarak ortaya çıkmıştır. İster tek başınıza bir proje üzerinde çalışıyor ister büyük, açık kaynaklı bir girişime katkıda bulunuyor olun, Git kodunuzun düzenli, erişilebilir ve ölçeklenebilir kalmasını sağlamada hayati bir rol oynar.

Git nedir?

Git™, birden fazla geliştiricinin birbirlerinin katkılarının üzerine yazmadan bir proje üzerinde aynı anda çalışmasına olanak tanıyan dağıtılmış bir sürüm kontrol sistemidir (DVCS). Linus Torvalds tarafından 2005 yılında oluşturulan Git, başlangıçta Linux çekirdeği geliştirme sürecinin yönetilmesine yardımcı olmak için tasarlanmıştır. O zamandan bu yana, web geliştirmeden veri bilimine ve mobil uygulama oluşturmaya kadar tüm programlama alanlarındaki geliştiriciler için vazgeçilmez bir araç haline geldi.

Subversion (SVN) gibi merkezi sistemlerin aksine Git, proje dosyalarının tüm sürümlerini saklamak için merkezi bir sunucuya güvenmez. Bunun yerine, her geliştirici, yapılan tüm değişikliklerin tüm geçmişi de dahil olmak üzere deponun tam bir kopyasına sahiptir. Git’in bu dağıtılmış doğası onu sağlam, hızlı ve güvenilir kılmaktadır.

Git™’in Temel Özellikleri

  1. Dallanma ve Birleştirme: Git’in dallanma modeli en güçlü özelliklerinden biridir. Geliştiriciler, ana kod tabanını etkilemeden yeni özellikler, hata düzeltmeleri veya deneysel çalışmalar için bağımsız dallar oluşturabilir. Değişiklikler tamamlandığında ve test edildiğinde, dallar ana projeye geri birleştirilebilir. Bu, izole geliştirme ve sorunsuz entegrasyon sağlar.
  2. Dağıtılmış Sistem: Git dağıtılmış olduğundan, her katılımcı projenin geçmişi de dahil olmak üzere tam bir kopyasına sahiptir. Bu yapı, geliştiricilerin çevrimdışı çalışmasına ve yine de tüm depoya erişmesine olanak tanır. Aynı zamanda tek bir hata noktası olmadığı anlamına gelir, bu da Git’i birçok merkezi sürüm kontrol sisteminden daha güvenilir kılar.
  3. Commit Geçmişi ve Günlükleri: Git, kod tabanında yapılan her değişikliği “commit” adı verilen anlık görüntülerle takip eder Her bir taahhüt, projenin belirli bir zamandaki durumunu temsil eder. Bu taahhütler, değişikliği kimin ve ne zaman yaptığı gibi mesajlar ve meta verilerle günlüğe kaydedilir. Bu, ekiplerin projenin gelişiminin ayrıntılı bir geçmişini tutmasına ve gerektiğinde önceki sürümlere kolayca geri dönmesine olanak tanır.
  4. Hazırlama Alanı: Git’teki hazırlama alanı, geliştiricilerin bir sonraki commit’e hangi değişikliklerin dahil edileceğini dikkatlice yönetmelerine olanak tanır. Git kullanıcıları, tüm değişiklikleri bir kerede işlemek yerine, yalnızca ilgili değişiklikleri sahneleyerek güncellemelerin temiz ve net bir geçmişini sağlayabilir.
  5. İşbirliği ve Açık Kaynak: Git, işbirliği söz konusu olduğunda parlar. GitHub, GitLab ve Bitbucket gibi platformlar Git’in üzerine inşa edilmiştir ve kod barındırma, proje yönetimi ve işbirliği için kullanıcı dostu bir arayüz sağlar. Geliştiriciler depoları çatallayabilir, çekme istekleri gönderebilir ve birbirlerinin kodlarını kolayca inceleyebilir.
  6. Verimlilik ve Hız: Git hız için tasarlanmıştır. Dallanma, birleştirme ve işleme gibi işlemleri performans için optimize edilmiştir. Git, büyük bir depoda bile işlemleri hızlı bir şekilde gerçekleştirir, bu da özellikle hızlı hareket eden geliştirme ortamlarında üretkenliği artırır.

İş Akışı: Git Nasıl Çalışır?

  1. Depoyu Klonlama: Başlamak için, geliştiriciler bir depoyu klonlar, bu da taahhüt geçmişi de dahil olmak üzere tüm projenin yerel bir kopyasını oluşturur. Bu, uzak depoya sürekli erişim gerektirmeden kod üzerinde çalışmalarına olanak tanır.
  2. Değişiklik Yapma: Proje dosyalarında gerektiği gibi değişiklikler yapılabilir. Git bu değişiklikleri takip eder ve geliştiricilerin git add komutunu kullanarak işlemek istedikleri dosyaları aşamalandırmalarına olanak tanır.
  3. Değişikliklerin İşlenmesi: Değişiklikler hazırlandıktan sonra, bir sonraki adım bir commit oluşturmaktır. Bir commit, değişiklikleri açıklayan bir mesajla birlikte projenin belirli bir zamandaki anlık görüntüsüdür. Bu, ilerlemeyi izlemeyi ve her güncellemenin arkasındaki amacı anlamayı kolaylaştırır.
  4. Uzak Bir Depoya Gönderme: Geliştiriciler taahhütte bulunduktan sonra git push komutunu kullanarak değişikliklerini GitHub veya GitLab gibi uzak bir depoya gönderirler. Bu, tüm ekip üyelerinin en son güncellemelere erişmesini sağlar.
  5. Değişiklikleri Çekme: Projeye başkaları da katkıda bulunduysa, geliştiriciler git pull komutunu kullanarak en son değişiklikleri uzak depodan alabilirler. Bu, yerel kopyalarını ekibin ilerlemesiyle güncel tutar.
  6. Çatışmaları Çözme: Bazen iki geliştirici aynı dosya üzerinde çakışan değişiklikler yapabilir. Git, bu çakışmaları çözmek ve değişikliklerin nasıl birleştirileceğine karar vermek için araçlar sağlayarak projenin tutarlı kalmasını sağlar.

Modern Geliştirmede Git’in Önemi

Çevik geliştirme, sürekli entegrasyon ve açık kaynaklı projelerin yükselişiyle birlikte Git vazgeçilmez hale geldi. Projenin farklı bölümleri üzerinde çalışan birden fazla geliştiriciyi aynı anda yönetme yeteneği, daha az darboğaz ve daha verimli iş akışları anlamına gelir. Ekipler bir şey bozulduğunda değişiklikleri hızla geri alabilir, hataların kaynağını takip edebilir ve şeffaf bir geliştirme süreci sürdürebilir.

Git aynı zamanda hem küçük ekipler hem de büyük açık kaynak projeleri için gerekli olan işbirliğini de teşvik eder. GitHub gibi platformlar Git’i bir sürüm kontrol aracından daha fazlasına dönüştürdü – dünyanın dört bir yanındaki geliştiricilerin ortak projelere katkıda bulunabileceği ekosistemler yarattılar.

Temel Git Komutları

1. git init

Git init komutu proje dizininizde yeni bir Git deposu başlatır. Tüm sürüm kontrol bilgilerinin depolandığı gizli bir .git klasörü oluşturur.

$ git init

Git ile takip etmek istediğiniz yeni bir projeye başlarken kullanın.

2. git klonlama

Git clone komutu, mevcut bir deponun uzak bir konumdan (GitHub, GitLab veya Bitbucket gibi) yerel makinenize bir kopyasını (veya klonunu) oluşturmak için kullanılır.

$ git clone

Bu komut, bir projeye katkıda bulunmanız veya açık kaynaklı bir proje üzerinde çalışmaya başlamanız gerektiğinde çok önemlidir.

3. git durum

Git status komutu, çalışma dizininin ve hazırlama alanının mevcut durumunu gösterir. Hangi dosyaların izlenmediğini, değiştirildiğini veya bir sonraki işlem için hazırlandığını listeler.

$ git durum

Bu komut, son işleminizden bu yana hangi değişikliklerin yapıldığını ve nelerin aşamalandırılması veya işlenmesi gerektiğini görmenize yardımcı olur.

4. git ekle

Git add komutu değişiklikleri çalışma dizininden hazırlama alanına taşır. Yalnızca sahnelenen dosyalar bir sonraki commit’e dahil edilecektir.

$ git add < dosya adı>
$ git add.

Dosyaları tek tek ekleyebilir veya değiştirilen tüm dosyaları bir kerede eklemek için .

5. git commit

Git commit komutu, hazırlık alanındaki değişikliklerin anlık görüntüsünü oluşturur ve bunu projenin geçmişinde saklar.

$ git commit -m "Commit message"

Her commit, yapılan değişiklikleri açıklayan anlamlı bir mesaja sahip olmalıdır. Bu, daha sonra işlemin amacını anlamayı kolaylaştırır.

6. git push

Git push komutu, yerel taahhütleri uzaktaki depoya göndererek proje üzerinde çalışan diğer kişiler tarafından erişilebilir hale getirir.

$ git push origin

Yerel değişikliklerinizi GitHub gibi bir platformdaki bir depoya yüklemek için bu komutu kullanın.

7. git pull

Git pull komutu uzaktaki bir depodan değişiklikleri alır ve bunları geçerli dalınızla birleştirir. Git fetch ve git merge komutlarını tek bir komutta birleştirir.

$ git pull origin

Yerel şubenizi diğer geliştiricilerin en son değişiklikleriyle güncel tutmak için kullanışlıdır.

Dallanma ve Birleştirme

8. git şubesi

Dalları listelemek, oluşturmak veya silmek için git branch komutu kullanılır. Branşlar, ana projeden bağımsız olarak farklı özellikler veya düzeltmeler üzerinde çalışmanıza olanak tanır.

$ git şubesi
# Tüm şubeleri listele
$ git şubesi
# Yeni bir şube oluşturun
$ git branch -d
# Bir dalı silin

Bu komut, birden fazla özellik veya hata düzeltmesi üzerinde işbirliği yaparken çalışmalarınızı yönetmek ve düzenlemek için gereklidir.

9. git checkout

Git checkout komutu dallar arasında geçiş yapar veya dosyaları önceki durumlarına geri yükler.

$ git checkout # Başka bir dala geç
$ git checkout -- # Dosyayı belirli bir commit'ten geri yükle

Genellikle farklı özellikler veya hata düzeltmeleri arasında bağlam değiştirmek ve hatta eski taahhütleri incelemek için kullanılır.

10. git birleştirme

Git merge komutu, bir daldaki değişiklikleri başka bir dalda birleştirmek için kullanılır.

$ git merge

Tipik olarak, bir özellik üzerindeki çalışmayı tamamladıktan sonra özellik dallarını ana dalla (genellikle master veya ana olarak adlandırılır) birleştirirsiniz.

İzleme Geçmişi

11. git günlüğü

Git log komutu depodaki commitlerin geçmişini gösterir. Varsayılan olarak, commit karmasını, yazarı, tarihi ve commit mesajını görüntüler.

$ git log

Özellikle büyük projelerde değişikliklerin geçmişini gözden geçirmek için faydalıdır.

12. git fark

Git diff komutu, projenizin çeşitli sürümleri arasındaki farkları gösterir. Çalışma dizininiz, hazırlık alanınız ve işlenmiş anlık görüntüleriniz arasındaki değişiklikleri karşılaştırmak için kullanılabilir.

$ git diff # Çalışma dizinindeki değişiklikleri karşılaştır
$ git diff --staged # Hazırlama alanındaki değişiklikleri karşılaştırın

Bu komut, işlem yapmadan önce hangi değişikliklerin yapıldığını gözden geçirmek için çok önemlidir.

Değişiklikleri Geri Alma

13. git sıfırlama

Git reset komutu, HEAD’i önceki bir commit’e taşıyarak değişiklikleri geri almak için kullanılır. Sıfırlama moduna bağlı olarak değişiklikleri kademesiz hale getirebilir veya tamamen silebilir.

$ git reset
# Belirli bir commit'e sıfırla
$ git reset --soft
# Değişiklikleri sahneden kaldırın ancak çalışma dizininde tutun
$ git reset --hard
# Çalışma dizininden değişiklikleri kaldırın ve silin

Bu komut, istenmeyen değişiklikleri geri almanız veya kaldırmanız gerektiğinde yardımcı olur.

14. git revert

Git revert komutu, commit geçmişini değiştirmeden belirli bir commit’in etkilerini tersine çevirmek için kullanılır.

$ git revert

Değişiklikleri geri almak için daha güvenli bir yoldur çünkü geçmişi korur ve belirtilen işlemi geri alan yeni bir işlem oluşturur.

İşbirliği ve Paylaşım

15. git uzak

Git remote komutu, yerel deponuzun bağlı olduğu uzak depolar kümesini yönetir. Uzaktan kumandaları ekleyebilir, kaldırabilir ve görüntüleyebilirsiniz.

$ git remote add origin
# Yeni bir uzaktan kumanda ekleyin
$ git remote -v
# Uzak depoları görüntüle

Bu, GitHub veya GitLab gibi uzak bir depoya itmek veya bu depodan çekmek için gereklidir.

16. git fetch

Git fetch komutu uzaktaki bir depodan güncellemeleri alır ancak bunları mevcut dalınızla birleştirmez. Değişiklikleri entegre etmeden önce gözden geçirmek için kullanışlıdır.

$ git fetch origin

Bu genellikle daha kontrollü güncellemeler için git merge ile birlikte kullanılır.

Gelişmiş Git Komutları

17. git stash

Git stash komutu, çalışma dizininizde henüz işlenmeye hazır olmayan değişiklikleri geçici olarak kaydeder. Bu değişiklikleri daha sonra yeniden uygulayabilirsiniz.

$ git stash
# Değişiklikleri kaydet
$ git stash pop
# Saklanan değişiklikleri yeniden uygula

Bu, dalları değiştirmeniz veya farklı bir özellik üzerinde çalışmanız gerektiğinde, ancak bitmemiş değişikliklerinizi işlemek istemediğinizde kullanışlıdır.

18. git rebase

Git rebase komutu birleştirme işlemine bir alternatiftir. Bir daldaki taahhütleri diğerine yeniden uygulayarak, birleştirme taahhütleri olmadan doğrusal bir geçmiş oluşturur.

$ git rebase

Bu, temiz ve okunabilir bir commit geçmişi tutmak istediğinizde kullanışlıdır.

19. git cherry-pick

Git cherry-pick komutu, tüm dalı birleştirmeden bir daldan diğerine belirli bir commit’i uygulamanıza olanak tanır.

$ git cherry-pick

Bu, ilgisiz çalışmaları entegre etmeden başka bir daldan belirli değişiklikleri getirmeniz gerektiğinde yararlıdır.

Sonuç

Git’in komut satırı arayüzü, geliştiricilere kod geliştirmeyi yönetmek ve kontrol etmek için güçlü bir araç seti sağlar. Git add ve git commit gibi temel komutlardan git rebase ve git stash gibi gelişmiş işlemlere kadar Git’in esnekliği ve derinliği onu her geliştirici için vazgeçilmez bir araç haline getirmektedir.

Bu temel komutları öğrenerek Git’in sürüm kontrol özelliklerinden tam olarak yararlanabilir, daha sorunsuz işbirliği, daha hızlı geliştirme döngüleri ve projelerinizin gelişimi üzerinde daha iyi kontrol sağlayabilirsiniz. İster tek başınıza ister bir ekiple çalışıyor olun, Git’te ustalaşmak temiz, iyi düzenlenmiş depoları korumanıza ve yazılım geliştirmenin karmaşıklıklarını güvenle aşmanıza yardımcı olacaktır

Sonuç

Git™ sürüm kontrolü her modern geliştirici için vazgeçilmez bir araçtır. Güçlü özellikleri, esnekliği ve verimliliği onu birçok başarılı yazılım projesinin temeli haline getirmektedir. İster tek başına bir geliştirici olun ister büyük bir ekibin parçası, Git’i anlamak ve kullanmak kodunuzu daha etkili bir şekilde yönetmenize, sorunsuz bir şekilde işbirliği yapmanıza ve projenizin kontrollü ve düzenli bir şekilde gelişmesini sağlamanıza yardımcı olacaktır.

Git’i benimseyin ve kendinizi daha hızlı çalışırken, daha iyi işbirliği yaparken ve daha temiz, daha düzenli kod tabanlarını korurken bulacaksınız.

Tüm Barındırma hizmetlerimizde becerilerinizi test edin ve % 15 indirim kazanın!

Ödeme sırasında kodu kullanın:

Skills