GIT Nedir? ve Windows için GIT

28 Kas

GIT bir versiyon kontrol sistemidir. Yazılımcılar için geliştirme sürecinde önemli bir yeri olan versiyonlama mekanizmasını otomatikleştirebilen bir sistemdir. GIT, kökeni Linux tabanlı bir topluluk olsa da Windows tarafındaki gönüllüler sayesinde Windows dünyasına da kazandırılmıştır. Windows için GIT geliştirmek amacıyla MSys/MinGW projeleri baz alınmıştır.

Git for Windows(MinGW) projesi temel düzeyde Git kullanıcılarına hitap ederken, msysGit projesi geliştiriciler, testçiler, bakım ve dağıtım ekibi tarafına hitap etmektedir.

Hem MinGW hem de msysGit projelerinin depolama yeri Web tabanlı GitHub platformudur.

Ben kendi projelerimi versiyonlamak için msysGit uygulamasını kullanıyorum. msysGit programına buradan ulaşabilirsiniz. Programı indirip kurmak gayet basit olduğu için kurulum anlatımı yapmadım.

Programın kullanım arayüzü olarak komut ve GUI destekli olmak üzere iki seçeneği bulunmaktadır.

Git grafiksel arayüzü (Git GUI) şu şekildedir:

Git GUI

Git komut arayüz görüntüsü (Git Bash) şu şeklidedir:

Git Bash

Git Bash için bazı komutlar şu şeklidedir:

clear: Komut ekrarnını temizler.

mkdir: Bulunduğunuz dizin içerisine yeni bir dizin oluşturur.

ls: Bulunduğunuz dizindeki dosya ve dizinleri listeler.

cd: Dizin değiştirir.

git –version: Sistemde kurulu olan Git versiyonunu verir.

git init: Bulunduğu dizine “.git” adında yeni bir git deposu(repository) oluşturur.

git add: Çalıştığınız dizindeki dosyalarda oluşan değişiklikleri indekse ekler.

git status: Çalıştığınız dizindeki dosyaların indeksteki durumunu gösterir.

git commit: İndekse yazılmış tüm değişiklikleri alır ve bu değişiklikleri işaret eden yeni bir icra(commit) nesnesi oluşturur ve bu icra nesnesine şube ayarlar.

git remote: uzak depoların takma adlarını listeler.

git remote add: projenize yeni bir uzak depo ekler.

git push: Değiştirilmiş tüm yerel nesneleri uzaktaki depoda bulunan şubelere atar.

Yukarıdaki komutlar ile bir depo(repository) oluşturup uzaktaki bir depoya gönderme işlemi yapılabilmektedir. Bu komutlardan başka birçok komut vardır ancak şimdilik yeterli olacak komutlar elimizdekilerdir.

Örnek Uygulama

Geliştiriciler olarak projelerimizi versiyonlar halinde uzak bir depoda tutmak istediğimizde aklımıza ilk gelecek olan GitHub platformudur. Git de zaten bu platforma veri gönderebilmektedir.

Bu örnek uygulamamızda bir Visual Studio projemizi msysGit yardımıyla GitHub üzerinde oluşturduğumuz bir depoya(repository) göndermeye çalışalım.

Git tarafında ön bilgiye sahip olduğumuza göre bir de GitHub tarafında neler yapmamız gerektiğine göz atalım. Öncelikle GitHub web sayfasında bir hesap oluşturmamız gerekmektedir. Hesap oluşturduktan sonra GitHub web sayfasında “Create New Repository” veya “New Repository” şeklinde oluşturulmuş link yardımıyla yeni depo oluşturma sayfasına yönlendiriliriz.

GitHub New Repository

Yukarıdaki resimde de görüldüğü üzere TestConsoleApplication adında bir repository oluşturuyoruz.

Dikkat: Github üzerindeki repository içerisine veri gönderebilmek için bir güvenlik seviyesi ayarı olan SSH Key oluşturup sitedeki Account Settings bölümüne kaydetmemiz gerekmektedir. Bu işlemi Github burada bizim için anlatmış. Bu ayarı yapmadığımızda gönderdiğimiz veriyi almayacaktır.

Bu güvenlik ayarını da başarılı bir şeklide yaptıktan sonra Visual Studio ortamında oluşturulmuş “TestConsoleApplication” adında bir c# projesini Github depomuza gönderelim.

Projemizi D sürücüsü üzerinde TestConsoleApplication adında bir dizinde tutacağız ve Git üzerinden bu dizinde işlem yapacağız.

Git Commands 1,2,3

KOMUT:1 D sürücümüzde projemizin bulundupu TestConsoleApplication dizinine girer.

KOMUT:2 Dizin içerisine .git adında bir yerel depo oluşturur. Oluşturulan bu dizin (.git) gizli olabilir. Göremezsseniz klasör seçeneklerinden  “gizli dosya ve klasörleri göster” seçeneğini seçip bakabilirsiniz.

KOMUT:3 Dosya değişikliklerini indekse ekler.

Git Commands 4

KOMUT:4 Yeni bir icra(commit) nesnesi oluşturur.

Git Commands 5,6

KOMUT:5 Projeye git@github.com:bayramucuncu/TestConsoleApplication.git depo yolunu ekler.

KOMUT:6 Değiştirilmiş tüm yerel nesneleri uzak depo adersine gönderir.

Gönderdiğimiz projeye web sitesi üzerinden göz atacak olursak şu şeklide bir manzara karşımıza çıkacaktır.

Github Repository

Bu test projesi Github üzerinde oluşturulmuş genel bir projedir. Herkese açık bir şekilde düzenlenmiştir.

Tekrar görüşmek dileğiyle.