Git ve GitHub genellikle birlikte anılsa da, aslında farklı sorumluluklara sahiptir. Bu farkı net anlamadan yapılan çalışmalar, ileride ciddi iş akışı problemlerine yol açar.
Git ile çalışmaya başlamadan önce yapılması gereken ilk ve zorunlu adım, sistemde Git’in yüklü olup olmadığını kontrol etmektir. Bu kontrol yapılmadan hiçbir Git komutu çalıştırılmamalıdır.
git version 2.xx.x gibi bir çıktı alınır ve bir sonraki adıma geçilebilir.command not found: git Git sistemde yüklü değildir. Bu durumda Git, resmi web sitesinden kurulmalıdır.git --versionGit, yapılan her commit işlemini bir kullanıcı bilgisi ile ilişkilendirir. Bu nedenle Git’i kullanmaya başlamadan önce, commit’lerin kimin adına atılacağını Git’e söylemek gerekir. Bu bilgiler:
Bu ayar, commit’lerde görünecek olan isim bilgisini belirler. Gerçek adınız, takma ad veya ekip içi tanımlama olabilir.
git config --global user.name "Sezer Gec"Bu ayar, commit’lerde görünecek olan e-posta adresini belirler. GitHub hesabınızda kullandığınız e-posta ile aynı olması önerilir.
git config --global user.email "example@gmail.com""Git, tek başına çalışan bir araç değildir. Her zaman bir klasör üzerinden çalışır ve bu klasörü proje olarak kabul eder.Projenin kök dizini olacak ve tüm kodlar burada yer alacak. Bu adımda:
mkdir example-project
cd example-projectŞu anda elimizde bir proje klasörü vardır, ancak Git bu klasörü henüz takip etmemektedir. Bu klasörü bir Git repository’si haline getirmek için Git’e açıkça “bu klasörü takip et” dememiz gerekir. Aşağıdaki komut, bulunduğun dizini bir Git repository’si haline getirir. Bu işlem tamamen lokaldir ve internet bağlantısı gerektirmez.
.git adlı gizli bir klasör oluşturulurgit initGit repository başlatıldıktan sonra Git artık bu klasörü takip edebilir, ancak henüz ortada takip edilecek bir dosya yoktur. Git, sadece değişiklikleri ve dosyaları kaydeder.
Bu nedenle sıradaki adım, projeye ilk dosyayı eklemek ve bu durumu Git geçmişine kaydetmektir. Bu işlem commit olarak adlandırılır.
Örnek olması için basit bir README dosyası oluşturulur. Bu dosya, projenin ne yaptığını açıklamak için kullanılır ve neredeyse her projede bulunur.
touch README.mdGit, repository içindeki dosyaların durumunu otomatik olarak takip eder. Aşağıdaki komut ile hangi dosyaların takip edilmediği görülebilir. Bu aşamada README.md dosyası untracked olarak görünür. Bu, Git’in dosyayı henüz takip etmediği anlamına gelir.
git statusGit’e, bu dosyanın bir sonraki commit’te kaydedilmesini istediğimizi söylemek için dosya stage alanına eklenir. Projedeki belirli bir dosyayı eklemek için: git add README.md
git add .Stage alanına eklenen dosyalar artık commit edilebilir. Commit, projenin o anki halinin Git geçmişine kaydedilmesidir.
git commit -m "Initial commit"Bu aşamada lokal bilgisayarda oluşturulan Git repository’si, GitHub üzerine taşınır. GitHub, kodun uzaktan saklandığı ve paylaşıldığı platformdur.
GitHub hesabına giriş yapıldıktan sonra Yeni butonuna tıklanır ve aşağıdaki kurallar uygulanarak uzak GiHub deposu oluşturulur.
Bu aşamada lokal bilgisayarda oluşturulan Git repository’si ile GitHub üzerinde oluşturulan boş repository birbirine bağlanır. Bu işlemden sonra kodlar GitHub’a gönderilebilir hale gelir.
GitHub üzerinde oluşturulan repository’nin URL adresi kullanılarak origin adıyla bir remote tanımlanır. origin, GitHub’daki ana repository’yi temsil eder.
git remote add origin https://github.com/USERNAME/example-project.gitTanımlanan remote’un doğru şekilde eklenip eklenmediği kontrol edilir. Eğer her şey doğruysa origin satırı listelenir.
git remote -vBu aşamada lokal repository’de kullanılan branch adı GitHub standartları ile uyumlu hale getirilir ve ilk kez kodlar GitHub’a gönderilir. Bu işlem sonrası lokal ve remote repository senkronize olur.
main olarak ayarlanırBazı sistemlerde varsayılan branch adı master olabilir. Bu komut ile branch adı main olarak güncellenir.
git branch -M mainBu komut ile lokal main branch’i GitHub’daki repository’sine gönderilir. -u parametresi, bu branch’in varsayılan takip branch’i olarak ayarlanmasını sağlar. Push işlemi başarılı olduğunda proje dosyaları GitHub üzerinde görüntülenebilir hale gelir.
git push -u origin mainGit, proje klasörü içindeki tüm dosyaları varsayılan olarak takip eder. Ancak bazı dosyaların GitHub’a gönderilmesi istenmez. Bu dosyaların Git tarafından yok sayılması için .gitignore dosyası kullanılır.
Repository kök dizininde .gitignore adlı bir dosya oluşturulur.
touch .gitignoreAşağıda Node.js tabanlı projeler için yaygın kullanılan bir örnek bulunmaktadır. GitHub'a aktarılmasını istemediğiniz dosya veya klasörleri ekleyebilirisniz.
node_modules/
.env
.next/
dist/
build/
.DS_Store
npm-debug.log*
yarn-debug.log*
yarn-error.log*Repository GitHub’a bağlandıktan sonra Git, günlük geliştirme sürecinin doğal bir parçası haline gelir. Yapılan her değişiklik belirli bir sıra izlenerek kaydedilir ve GitHub’a gönderilir. Bu akış, bireysel projelerde ve ekip çalışmalarında standarttır.
Proje dosyalarında yapılan her değişiklik Git tarafından otomatik olarak algılanır. Ancak bu değişiklikler commit edilene kadar yalnızca lokal bilgisayarda geçerlidir.
Hangi dosyaların değiştiğini görmek için aşağıdaki komut kullanılır. Değiştirilen dosyalar modified olarak listelenir.
git statusYapılan değişiklikleri commit edebilmek için stage alanına eklemek gerekir. Günlük kullanımda çoğunlukla tüm değişiklikler eklenir.
git add .Yapılan değişiklikler açıklayıcı bir commit mesajı ile Git geçmişine kaydedilir. Commit mesajı, yapılan işin ne olduğunu net şekilde anlatmalıdır.
git commit -m "Update README content"Commit edilen değişiklikler GitHub’daki repository’ye gönderilir. Upstream tanımlandığı için sadece git push komutu yeterlidir.
git push origin mainGitHub üzerinde bulunan bir projeyi lokal bilgisayarınıza almak veya mevcut projenizi GitHub’daki en güncel sürümle senkronize etmek için kullanılan adımlar. İlk kez projeyi almak için git clone, daha sonra güncel tutmak için git pull komutu kullanılır.
GitHub üzerindeki bir repository’yi ilk kez almak için kullanılır. Bu işlem, repository’nin tüm dosyalarını ve commit geçmişini lokal bilgisayara getirir.
git clone https://github.com/USERNAME/example-project.gitDaha önce clone edilmiş bir proje üzerinde, GitHub’daki değişiklikleri almak için kullanılır.
git pull origin main