Git

Git

'Git, yazılım geliştirme süreçlerinde kullanılan, hız odaklı, dağıtık çalışan bir sürüm kontrol ve kaynak kod yönetim sistemidir. İlk sürümü Linux çekirdeği'nin geliştirilmesinde kullanılmak üzere 2005 yılında bizzat Linus Torvalds tarafından tasarlanıp geliştirilmiştir.

Git repomuzu oluşturmak

Git, bir kod deposu (repository veya kısaca "repo") olarak adlandırılan belirli dosyalardaki değişiklikleri izler. Projemiz için bir tane oluşturalım. Konsolunuzu açın ve pokemon klasöründe aşağıdaki komutları çalıştırın:

Not Reponuzu oluşturmadan önce pwd (Mac OS X/Linux) ya da cd (Windows) komutu ile şu an çalışmakta olan dizininizi kontrol edin. pokemon dizininde olmanız gerekiyor.

komut-satırı

Hatırlatma: Kullanıcı adı seçerken Türkçe karakter kullanmayın.

$ git init Initialized empty Git repository in ~/pokemon/.git/ $ git config --global user.name "Adınız" $ git config --global user.email “[email protected]

Git reposunu başlatmak proje başına sadece bir kere yapmamız gereken bir şeydir (ve kullanıcı adınız ve mailinizi tekrar girmeniz gerekmeyecek).

Git bu dizindeki tüm dizin ve dosyalardaki değişiklikleri kaydedecek, ama takip etmemesini istediğimiz bazı dosyalar var. Bunu dizinin dibinde .gitignore adında bir dosya oluşturarak yapıyoruz.

Editörünüzü açın ve aşağıdaki içeriklerle yeni bir dosya yaratın:

.gitignore *.pyc *~ __pycache__ myvenv db.sqlite3 /static .DS_Store

Ve onu .gitignore ismi ile "pokemon" dizinine kaydedin.

Not: Dosya adının başındaki nokta önemli! Eğer dosyayı oluştururken zorluk yaşarsanız (örneğin Mac'ler Finder'dan nokta ile başlayan bir dosya oluşturmanızdan hoşlanmazlar), editörünüzdeki "Farklı Kaydet" özelliğini kullanın böylece çalışacaktır.

Reponuza veri tabanı dosyamızı eklemek istemiyoruz çünkü canlı web siteniz farklı bir veritabanı kullanacak. Genelde sitenizdeki çok daha fazla ziyaretçiyi kaldırabilecek MySQL adı verilen bir veritabanı kullanacaksınız. GitHub kopyası için veritabanınızı yok saymanız, şu ana kadar oluşturduğunuz tüm gönderilerin lokalinizde kalması ve yalnızca lokal olarak kullanılabilmeniz anlamına geliyor. Canlıda onlara ulaşabilmeniz için yeniden eklemek zorundasınız

Kodunu GitHub'a ekle

[GitHub.com](https://www.github.com) adresine gidip yeni ve ücretsiz bir hesap için kaydol. (Workshop prep(atölye hazırlığı) aşamasında yaptım zaten ben bunu diyorsanız, bu harika!) Sonra yeni bir repository oluşturup "Pokemon" ismini verin. "BENİOKU dosyası ile başlat" onay kutusunu işaretlemeyin, .gitignore seçeneğini boş bırakın (biz manual olarak oluşturacağız. Şimdi Git repository'i bilgisayarınızdaki bir GitHub'a bağlamamız gerekiyor.

Sonraki ekranda repo'nun klon URL'sini göreceksiniz. "HTTPS" ile başlayanı seçin, kopyalayın ve şunu terminale yapıştırın:

git clone <kopyalanan_url>

Aşağıdakileri konsol ekranına geçirin (`<your-github-username>` kısmını köşeli parantez olamadan GitHub kullanıcı adınızla değiştirin):

Temel Git komutları:

Add

git add <dosya_ismi>

Bu işlem ile depoya eklemek istediğimiz, daha önceden eklenmiş veya değişiklik yapılmış dosyayı index denilen git geçici alanına ekledik.

Belirttiğiniz bir dosyayı ya da tüm projeyi çalışma dizinine (Index) ekler. Yani commit‘lenmeye hazır hale getirir.

Commit

git commit -m “yapılan işin kısa bir açıklaması"

Burada değişikliklerimizi belirten yorumlarımızı ekledik ve yukarıdaki komut ile yaptığımız değişiklikleri local depoya yolluyoruz.

Push

git push <remote_adres> <bulunduğumuz_branch_dalı>

Daha önce commit işlemi gerçekleştirip uzak depoya göndermedigimiz paketleri göndermek için kullanılır.

Pull

git pull

Uzak sunucuda değişikliğe uğramış ya da yeni eklenmiş dosyalar varsa bunları indirir ve yereldeki depo ile birleştirir.

Diğer git komutları:

Yeni Dallanma(Branching) oluşturmak için: git branch <yeni_dal_ismi>

İstediğimiz dala geçmek için: git checkout <yeni_dal_ismi>

Dalı silmek için: git branch -D <branch>

Git repolarını, dalları birleştirmek için: git merge <branch>

Git reposundaki dosyanın silinmesi: git rm -r <dosya_adi>

git log

Eski versiyona geri dönmek istediğimiz durumlarda eski commitlerimizi git log komutu ile listeleyip istediğimiz commit versiyonuna dönebiliriz.

Dönmek istediğimiz komit için; git checkout <commit - c1598..>

git log sample

Branch kullanımına aşağıdaki gibi bir yapı örnek gösterilebilir.

Branch Structer Sample