Clone’ların Saldırısı (Ders 3)
“Yedekleme” denildiğinde muhtemelen aklınıza bir dosyayı kopyalayıp ayrı bir klasöre koymak geliyor. Çevrimçi yedekleme de aynı mantığa göre bir dosyayı bir sunucuya kopyalamak oluyor. İhtiyacınız olduğunda da yedeklerin arasından gerekli versiyonu bulur geri kopyalarsınız.
Bunu yapmanız için öncelikle yedekleyeceğiniz alanı belirlemeniz gerekiyor, örneğin “Yedekler” isminde bir klasör oluşturmanız gibi. Tabi farklı projelerin yedek dosyalarını daha kolay bulabilmek için her proje için farklı bir klasör açmak isteyebilirsiniz.
Git için benzer bir analoji kurmak mümkün. Git hesabınızı “Yedekler” klasörü olarak düşünebilirsiniz. Hesabınızda her proje için ayrı bir klasör oluşturmanız gerekecek. Buradaki oluşturulacak bu klasörlere repository, yani depo diyoruz. Yeni bir repository oluşturmak için Github hesabınıza giriş yapın. Muhtemelen aşağıdakine benzer bir sayfa ile karşılaşacaksınız.
Burada ilgilendiğimiz kısım sayfanın sol tarafı. “Repositories” kısmında bütün repository’lerinizi ya da kısaca repo’larınızı görebilirsiniz. New butonuna tıklayarak yeni bir repo oluşturabilirsiniz. Alternatif olarak sağ üstteki artı butonuna tıklayarak “New Repository” seçeneğini seçebilirsiniz. İleride bu arayüz değişebilir, fakat benzer seçenekleri bulmakta zorlanmayacağınızı tahmin ediyorum. Takip eden sayfada repo’nun bazı özelliklerini ayarlayacağız.
Buradaki Owner alanı repoyu kimin adına oluşturduğunuzu beliliyor. Şu anda başka bir takıma dahil olmadığınız için sadece sizin adınız görünecektir. Takip eden Repository Name alanı ise tahmin edebileceğiniz gibi repo’nın adı olacak. Ben bu ders için GitDers adını kullanacağım. Buraya yazacağınız isim repo’nun linki için kullanılacak. Link oluşturulurken boşluk yerine tire “-” işareti gelecek. Örnek olarak kullanıcı adınız gitprof, reponuzun adı ilk repo olsun. Bu durumda repo’nun linki
https://github.com/gitprof/ilk-repo
olacaktır. Description, adından da anlaşılabileceği gibi bu repo’nun tanımıdır. Eğer kişisel bir proje yapıyor ve kodları dışarıdan insanların görmesini istemiyorsanız sonraki alanda Private seçeneğini işaretleyin. Açık kaynak bir proje üzerinde çalışacaksanız da Public seçmeniz gerekiyor. Daha sonra bu seçeneği değiştirebilirsiniz.
Büyük veya açık kaynak bir proje üzerinde çalışıyorsanız bütün ayrıntıları, kuralları veya projenin amacını her yeni gelen kişiye anlatmak istemezsiniz muhtemelen. Böyle durumlarda bir README (beni oku) dosyası oluşturmak isteyebilirsiniz. Initialize this repository with a readme seçeneği otomatik olarak böyle bir dosya oluşturuyor. Bu dosyaya yazdıklarınız projenin ana sayfasında çıkacaktır. Örnek olması açısından bu seçeneği işaretleyin, ileride bu dosyayı düzenleyeceğiz.
Eğer projeniz açık kaynak kodlu ise basit de olsa bir lisans eklemek isteyebilirsiniz. Ayrıntılara girmeyeceğim ancak hemen hemen her durum için basit bir lisans mevcut, ve kendisini buradan ayarlayabilirsiniz.
Oyun motorları, Visual Studio veya benzer editörlerin otomatik olarak oluşturduğu dosyaları yedeklemek istemeyebiliriz. Bunu Git’e .gitignore isimli bir dosya ile anlatabiliriz. Bu dosyanın otomatik olarak repoya eklenmesini istiyorsanız Add .gitignore butonuna tıklayarak projenize uygun hazır bir tane seçebilirsiniz. Veya daha sonra bu dosyayı kendiniz de oluşturabilirsiniz. Örnek olması açısından Unity için bir .gitignore dosyası oluşturulmasını isteyeceğim. Bu pencerenin son hali şu şekilde olmalı:
Create Repository düğmesine tıklayıp devam edelim. Açılan sayfa ilk bakışta gözünüze karmaşık gelebilir, fakat korkmayın. Zamanı gelince ilgili yerlere tek tek göz atacağız.
Ortada proje dosyaları, altta ise readme dosyasının içeriğini göreceksiniz. Proje içinde şu anda sadece .gitignore ve readme.md dosyaları var. Şimdi bu projeyi bilgisayarımıza kopyalayıp bu sayfa ile bağlantı kurmamız gerekiyor. Bunun için sağ üstteki Clone or Download düğmesini kullanacağız. Bu düğmeye tıkladığınızda karşınıza bir bağlantı ve iki seçenek çıkacak: Open in Desktop ve Download ZIP.
Download ZIP derseniz bu proje bir zip dosyası şeklinde bilgisayarınıza inecektir. Bu durumda inen dosya repo ile bağlantısını kaybedeceği için bizim işimize pek yaramaz. Eğer bir önceki dersi takip edip Github Desktop’ı kurmuşsanız Open in Desktop seçeneğini tıklayarak Github Desktop’ın açılmasını sağlayabilirsiniz. Bu işlemi daha iyi anlayabilmek adına bu işi kendimiz yapalım. Bağlantıyı kopyalayıp Github Desktop uygulamasını açalım. Uygulama açınca karşınıza şöyle bir pencere çıkacaktır:
Sol taraftaki seçenekler aracılığı ile İnternetten bir repo kopyalayabilirsiniz (Clone a Repository from the Internet…), bilgisayarınızda yeni bir repo oluşturabilirsiniz (Create a new Repository on your Hard Drive…) veya bilgisayarınızda var olan bir repo’yu Github Desktop’a ekleyebilirsiniz. Kullandığınız sürüme göre bu seçenekler sağ tarafta da olabilir. Hatta dağılım komple değişmiş de olabilir, ama benzer menüleri bulabileceğinize güvenim sonsuz. Sağ tarafta Github hesabınızdaki bütün repo’ları görebilirsiniz. Şu anda sadece bir tane oluşturmuş olduğumuz için tek bir tane görünecektir. Yine otomatik bir şekilde indirmek isterseniz repo’yu seçip aşağıdaki Clone ile başlayan düğmeye tıklayabilirsiniz. Biz işlemi otomatik olarak yapmak istemediğimiz için Clone a Repository from the Internet düğmesine tıklayalım. Açılan pencerede yine az öncekine benzer seçenekler göreceksiniz. URL sekmesini açın ve kopyaladığınız bağlantıyı yukarıdaki alana yapıştırın. Alttaki alana projeyi bilgisayarda nereye kopyalamak istediğinizi belirtin, ya da sağdaki Choose düğmesini kullanın. Son olarak Clone düğmesine tıklayın ve projenin inmesini bekleyin.
Proje indikten sonra bir önceki adımda indirdiğiniz klasöre gidin ve orada olduğunu göreceksiniz. Şu anda proje klasörünün içinde bir tek readme ve .gitignore dosyaları mevcut. .gitignore dosyasını göremiyorsanız muhtemelen bilgisayarın ayarlarından “Gizli Dosyaları Göster” seçeneğini işaretlemeniz gerekiyor. Fakat şu anda bu önemli değil, .gitignore dosyasına ileriki derslerde döneceğiz. Sonraki derste yaptığımız değişiklikleri yedeklemeyi öğreneceğiz.
Filed under: Git - @ November 1, 2019 10:33 pm
Tags: Programlama, git, versiyon kontrol, proje yönetimi, clone, git clone