Node geliştirme ortamımızı kurmaya Git ile başlıyoruz. Kurulum adımlarına geçmeden önce sürüm kontrol sistemleri ve Git üzerine biraz bilgi vermek istiyorum.

Sürüm Kontrol Sistemleri

Bir proje üzerinde çalışırken, belirli zaman aralıklarında (günlük, haftalık vs.) dosyaları başka bir klasöre veya sürücüye kopyalamak bilinen en eski ve en yaygın kullanılan sürüm kontrol tekniklerinden biridir. Kuskusuz hepimiz pek çok defa bu yöntemi kullanmışızdır. Çünkü çok basit! Ama bir o kadar da hataya açık ve tehlikelidir. Bu bağlamda sürüm kontrol sistemleri size; güvenli, hızlı, kullanımı ve takibi kolay bir yapı sunar.

En basit haliyle Sürüm Kontrol Sistemi (Version Control System), projeleriniz kapsamında oluşturduğunuz dosyaların sürümlerini yönetebilmenizi sağlayan bir arşivleme algoritması olarak tanımlanabilir. Revizyon Kontrol Sistemi (Revision Control System) ve Kaynak Kontrol Sistemi (Source Control System) gibi farklı isimlerle de anılan VCS;  özellikle, yazılım geliştime projelerinde sıklıkla kullanılmaktadır. Fakat web ve grafik tasarımı gibi çok sık dosya güncellemelerinin yapıldığı projelere de rahatlıkla entegre edilebilir.

VCS;

  • Proje kapsamında yapılan değişikliklerin sürümler halinde saklanması, 
  • Tüm projenin veya seçili dosyaların önceki sürümlerine geri döndürülmesi,
  • Sürümler arasındaki farklılıkların karşılaştırılması,
  • Sürümler arasında oluşan sorunların tespiti ve çözümü noktasında geliştiricilere büyük kolaylıklar sağlar.  

Kullanım biçimlerine göre sınıflandırıldığında sürüm kontrol sistemlerini üç gruba ayırabiliriz:

1. Yerel (Local) Sürüm Kontrol Sistemleri

Dosyalardaki bütün değişiklikler, kullanıcının yerel makinesinde barındırılan bir veritabanında tutulur. Bir dosyanın belirli bir sürümdeki görünümünü oluşturmak için veritabanında tutulan değişiklik kayıtlarından faydalanılır. RCS, yerel sürüm kontrol sistemlerinin en bilinenlerinden biridir.

nodejs-git-local-vcs-tr.png

Şekil 1. Yerel Sürüm Kontrol Sistemleri

2. Merkezi (Centralized) Sürüm Kontrol Sistemleri

Yazılım geliştirme ekiplerinin birlikte çalışma ihtiyacına yanıt olarak ortaya çıkmıştır. Sürüm kontrolüne ilişkin tüm yapı merkezi bir sunucuda tutulur. Yerel VCS'lere göre pek çok avantaja sahiptir. Örneğin; bir projedeki herkes, diğerlerinin ne yaptığından belirli ölçüde haberdardır. Sistem yöneticileri kimin hangi yetkilere sahip olacağını oldukça ayrıntılı biçimde düzenleyebilir. Üstelik bir Merkezi VCS‘yi yönetmek, her istemcide ayrı ayrı kurulu olan yerel veritabanlarını yönetmeye göre çok daha kolaydır.

CVS, Subversion ve Perforce merkezi VCS'lere örnek olarak verilebilir.

nodejs-git-centralized-vcs-tr.png

Şekil 2. Merkezi Sürüm Kontrol Sistemleri

Merkezi VCS'lerin en büyük sıkıntısı, sunucunun arızalanması durumunda ortaya çıkacak problemlerdir. Sunucu bir saatliğine çökecek olsa, o bir saat boyunca kullanıcıların çalışmalarını sisteme aktarmaları ya da çalıştıkları şeylerin sürümlenmiş kopyalarını kaydetmeleri mümkün olmayacaktır. Merkezi veritabanının sabit diski bozulacak olsa, yedekleme de olması gerektiği gibi yapılmamışsa, elinizdeki her şeyi kaybedebilirsiniz. Yerel VCS’ler de bu sorundan muzdariptir. Mantıken, projenin bütün arşivini tek bir yerde tuttuğunuz sürece her şeyi kaybetme riskiniz daima olacaktır.

3. Dağıtık (Distributed) Sürüm Kontrol Sistemleri

Veri kaybı riskini ve olası problemleri en aza indirgemek üzere tasarlanmıştır. Git, Mercurial ve Darcs dağıtık VCS'lerine örnek olarak verilebilir.

nodejs-git-distributed-vcs-tr.png

Şekil 3. Dağıtık Sürüm Kontrol Sistemleri

Bu algoritmada, istemciler dosya deposunun (repository) tamamını kopyalar. Böylece, sunuculardan biri çökerse, istemcilerden birinin yerel dosya deposu sunucuya geri yüklenerek sistem kurtarılabilir.

Dağıtık VCS'ler, birden çok uzak istemcide yer alan dosya depolarıyla çalışmanıza olanak sağlar. Böylece, bir projede kapsamında farklı ekiplerle ortak çalışmalar yürütebilirsiniz. Bu yapı, aynı anda birden çok iş akışı ile çalışabilmenizi de mümkün kılar.

Sürüm kontrolü kavramını ve sürüm kontrol sistemlerini inceledik. Şimdi de "Git nedir?" sorusu bağlamında Git'i diğer sürüm kontrol sistemlerinden ayıran özelliklere bir göz atalım.

Git Nedir?

Diğer sürüm kontrol sistemleri ile karşılaştırıldığında Git, sürüm bilgilerini çok farklı bir şekilde depolar ve işler. Bu farklılıkları anlamak, Git'i kullanırken elinizi rahatlatır ve karışıklığa düşmenizi önler.

Git ile diğer VCS'ler arasındaki en büyük fark Git'in sürüm verilerini ele alış biçimidir. Kavramsal olarak, Subversion, Bazaar vb. VCS'ler sürüm farklılıklarını takip edebilmek için dosya tabanlı değişikliklerin listesini depolar.

nodejs-git-file-based-vcs.png

Şekil 4. Sürüm verilerinin dosya bazlı olarak arşivlenmesi

Git; yalnızca dosya değişikliklerini değil, dosya deposunun tamamının anlık görüntüsünü saklar. Kaydedilen her işlemde Git, dosya deposunun o anki fotoğrafını çeker ve arşivler. Eğer bir dosya üzerinde değişiklik yapılmamışsa onu anlık görüntüye eklemez, dosyanın kaydedilmiş en son sürümüne bağlantı oluşturur.

nodejs-git-file-based-vcs.png

Şekil 5. Sürüm verilerinin dosya deposunun anlık görüntüsü olarak arşivlenmesi

Git'teki çoğu işlem sadece yerel dosyalara ve kaynaklara ihtiyaç duyar. Sürüm arşivini uzak bir sunucuya kopyalamak dışında ağ bağlantısına gerek yoktur. Bu da Git'in son derece hızlı çalışmasına imkan tanır. Projenin tüm sürüm geçmişi yerel diskinizde saklandığından, işlemler anında gerçekleştirilir.

Git, dosyaların sürüm geçmişi takip etmek için üç farklı durum etiketi kullanır:

  • modified: Dosyanın değiştirmiş olduğunu ancak henüz Git veritabanına kaydedilmediğini belirtir.
  • staged: Dosyanın, bir sonraki işlemde veritabanına kaydedilmek üzere hazır tutulduğunu belirtir.
  • committed: Dosyanın Git veritabanına güvenli bir şekilde kaydedildiğini belirtir.

Git hakkında yeteri kadar bilgi sahibi olduğunuzu düşüyorum. Artık, kurulum aşamasına geçme vakti...

Git'i Kurmak

İlk adım, Git'in bilgisayarınızda var olup olmadığını kontrol edelim. Bunun bir komut istemcisi açarak aşağıdaki kodu çalıştırabilirsiniz:

$ git --version

Eğer Git zaten yüklü ise onu en güncel sürüme yükseltmeniz de var.

Linux

Git'i Linux işletim sistemlerine kurmak için bir paket yöneticisi kullanmanız gerekir. Eğer bir Fedora kullanıcısı iseniz dnf kullanabilirsiniz:

$ sudo dnf install git-all

Eğer işletim sisteminiz Ubuntu gibi bir Debian dağıtımı ise apt kullanabilirsiniz:

$ sudo apt install git-all

Git'in Linux'ta dağıtımlarına nasıl kurulacağına ilişkin daha fazla detaylı talimatlara ihtiyacınız olursa https://git-scm.com/download/linux adresini ziyaret edebilirsiniz.

macOS

Git'i macOS'a kurmak için tercih edebileceğiz bir alternatif bulunmaktadır. Bunlardan en pratiği Xcode Command Line Tools'u kullanmaktır:

  1. Bir Terminal penceresi açın.
  2. $ git --version komunu çalıştırın.
  3. Eğer Git yüklü değilse, sizden yüklemek onayı istenecektir.

Git'in en güncel bir sürümünü yüklemek isterseniz Git'in macOS ikili yükleyicisini kullanabilirsiniz:

  1. https://git-scm.com/download/mac adresinden Git macOS ikili yükleyicisini bilgisayarınıza indirin ve çalıştırın.
  2. Yönergeleri (Şekil 6) takip ederek kurulumu tamamlayın.
    nodejs-git-mac-install.png

    Şekil 6. Git macOS İkili Yükleyici

Ayrıca Git'i, Git Masaüstü uygulamasının bir parçası olarak da kurulabilirsiniz.

Windows

Git'i Windows işletim sistemine kurmak isterseniz Git'in Windows ikili yükleyicisini kullanabilirsiniz:

  1. https://git-scm.com/download/win adresinden Git Windows ikili yükleyicisini bilgisayarınıza indirin ve çalıştırın.
  2. Yönergeleri takip ederek kurulumu tamamlayın.

Ayrıca Git'i, Git Masaüstü uygulamasının bir parçası olarak da kurulabilirsiniz.

En son değiştirme: Pazartesi, 21 Temmuz 2025, 10:39 ÖÖ