GitHub Nedir?

GitHub, versiyon kontrol sistemidir. Tabi günümüzde bu amacı dışında birçok amaçla kullanılmaktadır. Örneğin bir ekip içerisinde uzaktan ortak bir proje üzerinde çalışmak için, insanların çalışmalarını ortak bir noktada barındırma gibi. Aynen vermiş olduğumuz örnekte olduğu gibi her bir kişi kendi geliştirdiği projeyi yüklediğinde ana sayfa içerisindeki görüntü değişir fakat kalıcı olarak değil. Anahtar kelime de tam olarak budur. Zira gönderilen yeni veri içerisinde eğer bir değişiklik varsa(Ekleme, Silme, Güncelleme gibi) GitHub bunu fark eder ve önceki hâline gidebilecek bir yapı oluşturur. Bu nedenle günümüzde daha çok Showroom olarak kullanılsa da asıl amacı versiyon kontrol sistemi oluşturmaktır.

Kafanız karışmasın, örneğin siz bir proje geliştirdiniz ve geliştirmiş olduğunuz projeyi Github üzerinde paylaştınız. Daha sonrasında ise projeye bazı eklemeler yaptınız. Fakat yaptığınız eklemeleri geri almak yani GitHub üzerindeki versiyona geri dönmek istiyorsunuz. Hah işte tam bu noktada GitHub bir süper kahraman gibi yetişiyor ve size sadece bir iki kod ile tekrardan yüklemeyi yaptığınız alana geri dönmenizi sağlamaktadır.

Daha farklı bir şekilde ifade etmek gerekirse oynadığınız oyun içerisinde (Checkpoint) noktasına nasıl oyunu kayıt edebilirsanız aynı şekilde GitHub'ta bizim için projemizin mevcut yapısını kontrol altına alıyor. Zira oyunda kaybettiğimizde Checkpoint noktası bizim için oyunda ilerlememizi kayıt altına alan bir araç oluyor ve onun sayesinde bir hata yaptığımızda oyunun başına dönmek zorunda kalmıyoruz. Tam olarak GitHub'ta bu işi yapmaktadır. :)

Tarihi

Genelde her yazıda önce tarihi yazılır ama kim bipler tarihini :) Biz yine de bir arkadaşımız merak eder diye tarihi yazalım. Öncelikli olarak GitHub doğrudan geliştirilmiş bir araç değildir. Öncesinde 2005 yılında Linus Torvalds tarafından Git adında bir sistem geliştirilir. Fakat geliştirilen uygulama kullanıcı arayüzü içeren bir yapıda değildir yani Interface barındırmaz. Linux terminal satırlarında kullanılır. Geliştirlme amacı yazılımcıların kodları kaybetme veya yedekleme esnasında sorunlar yaşamasından kaynaklıdır. Kısaca oluşturulma amacı versiyon kontrolü yapmaktır.

Fakat arayüzü olmaması ve her kullanıcı tarafından rahat bir şekilde kullanılmaması kaynaklı olarak 2008 yılında Tom Preston-Werner, Chris WAnstrath ve PJ Hyett tarafından GitHub yapısı ortaya atılmıştır. Başlangıçta sadece "Ruby" ve "Rails" projelerini içerisinde barındırabiliyordu. Yani isteyen herkes Gidipte (PHP, JS, HTML) kodlarını dahil edemezdi. Ancak zamanla her kullanıcının ihtiyacını karşılamak amacıyla tüm dilleri destekleyen (algılayan) bir yapıya bürünmüştür. Çok büyük bir sorunu çözmesinden kaynaklı, geliştiriciler tarafından hızla kullanılmaya başlanmıştır. Günümüzde ise en büyük versiyon kontrol sistemi olarak yerini almaktadır. Ve işte bu kadar GitHub'ın da tarihi ve gelişim sürecini okumuş oldunuz. Yazımızın devamında ise GitHub yapısı kullanmak için Git yapısını kurmayı göstereceğiz. Yazının devamı için tıklanıyınız.

PM2 Nedir?

PM2, Node.js uygulamalarını yönetmek ve izlemek için kullanılan güçlü bir süreç yöneticisidir. Özellikle üretim ortamlarında uygulamaların sürekliliğini sağlamak için tasarlanmıştır. PM2, uygulamalarınızın terminalden bağımsız bir şekilde çalışmasını sağlar ve çeşitli yönetim özellikleri sunar.


PM2 Kurulumu

      PM2'yi Global Olarak Kurma:

npm install -g pm2

Bu komut, PM2'yi sisteminize global olarak kurar, böylece terminalden herhangi bir yerden kullanabilirsiniz.


PM2 Kullanımı

      Uygulama Başlatma:

pm2 start app.js<...

`git clone` Komutu

Kelime anlamı ile git clone, bir Git deposunun yerel bir kopyasını oluşturmak için kullanılan bir komuttur. Bu komut, uzak bir Git deposunun tüm içeriğini ve geçmişini yerel makinenize indirir, böylece projeyi inceleyebilir ve üzerinde çalışabilirsiniz.


`git clone` Komutunun Temel Kullanımı

      Bir Depoyu Klonlama:

git clone [url]

Yukarıdaki komut, uzak depodan bir kopyayı yerel makinenize indirir. Çıktıda, depo adı ile aynı isme sahip bir dizin oluşturulur ve tüm depo içeriği bu dizine kopyalanır.


      Belirli Bir Dizin Adı ile Klonlama:

...