Git Nedir? Git Kullanımı – Git Komutları – 3
Bugün sizlere git le alakalı örnekler göstereceğim, bu arada git in temel komutlarını göstereceğim.
Şimdi önce git bash (windows için) uygulamasını başlatıyoruz. Linux kullanıyorsanız (örneğin pardus için pisi içersinde git i bulabilirsiniz.) normal konsoldan da yazabilirsiniz.
Uygulamamızı çalıştırdıktan sonra üzerinde çalıştığımız projenin bulunduğu klasöre gidiyoruz.
$ cd home/hp/git_projeleri/proje1/ |
bu klasör boş bir klasör olabileceği gibi daha önceden başladığınız bir projenin klasörüde olabilir.Şimdi içinde bulunduğumuz klasörü git deposu haline getirelim.
$ git init |
Şimdi herşey yolunda gittiyse şöyle bir cevap alacaksınız.
Initialized empty Git repository in /home/hp/git_projeleri/proje1/.git/ |
Böylece klasörümüzü git deposu haline getirdik. Şimdi ikinci komutumuzu yazalım.
$ git add . (DİKKAT add den sonra bir boşluk ve nokta var) |
Bu komutlar klasörümüzdeki değişiklikleri izlemeye alıyoruz.Şu anda klasörümüz boş olduğu için herhangi bir cevap almayacağız. Bunun için klasörümüze index.php adında bir dosya açıyorum ve içinde şunları yazıyorum.(Buradaki php kodları çalışmayabilir, amaç dosyada sadece birşeylerin olması.)
<?php if(first==true) { return true; } ?> |
şimdi git add . komutumuzu çalıştıralım. Index.php dosyamızı şimdi izlemeye aldık. Durumunu sorgulamak için
$ git status |
komutunu kullanabiliriz. Bu komutla karşınıza dosyaların durumlarının olduğu bir özet gelecek. Şimdi yaptığımız bu değişiklikleri commit edelim. Yani bir versiyon olarak saklayalım. Bunun için şu komutu kullanacağız.
$git commit (Dikkat bu komutu kullandığınızda değişikliklerin commit edilmesi için daha önceden git add . komutunun kullanılmış olması gerekmektedir.Yani git add . komutunu kullandığınız andaki görüntüyü commit eder. ) |
Bu komutu girdiğinizde karşınıza yaptığınız versiyonu açıklamak için bir tanım girmenizi isteyecek. Bunun için windows kullananlar öncelikle “i” harfine basarak bir tanım girecekler, ardından esc tuşu ve ardından “:wq” (iki nokta w q) girerek kaydı tamamlayacaklar. Linux kullananlar normal tanımı girdikten sonra ctrl+(hangi tuş çıkıyorsa) ve ardından değişiklikleri kaydet diyecekler. Ben isim olarak “ilk commit” diyorum.Şimdi projemiz ilk versiyonuyla kaydedilmiş oluyor. Yaptığımız bu commitlerin bir geçmişini görüntülemek için
$ git log |
komutunu kullanabilirsiniz. Değişiklikleri commit ettiğimize göre
$git status |
komutunu durumu sorgulamak için tekrar kullanırsak.
nothing to commit (working directory clean) |
şeklinde son committen bu yana projenin working alanında yani git add . ile eklediğimiz alanda herhangi bir değişiklik olmadığını gösteriyor.
Şimdi tekrar index.php dosyamızı açalım ve kodumuzu biraz değiştirelim.
<?php if(first==true || second==true) { return true; } ?> |
şimdi tekrar commit etmeye çalışalım. Karşımıza şöyle bir uyarı gelecek.
hp@Hp-Computer proje1 $ git commit # On branch master # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: index.php # modified: index.php~ # no changes added to commit (use "git add" and/or "git commit -a") |
Burada diyor ki yaptığınız değişikliklerin commit edilebilmesi için öncelikle git add . ile izlemeye alınması gerekiyor.
Öyleyse tekrar git add . ve git commit komutlarını çalıştırıyorum. ve tanım olarak “ikinci commit” diyorum.
hp@Hp-Computer proje1 $ git add . hp@Hp-Computer proje1 $ git commit [master 8367986] ikinci commit Committer: Hp <hp@Hp-Computer.(none)> Your name and email address were configured automatically based on your username and hostname. Please check that they are accurate. You can suppress this message by setting them explicitly: git config --global user.name "Your Name" git config --global user.email you@example.com After doing this, you may fix the identity used for this commit with: git commit --amend --reset-author 2 files changed, 7 insertions(+), 2 deletions(-) |
Yukarıda yine silinen ve eklenen dosyaların bir özetini bize sunuyor.
Şimdi internette var olan bir depoyu kendi bilgisayarımıza çekelim. Bunun için
$ git clone |
komutunu kullanıyoruz. Ben örnek olarak.
$ git clone git://github.com/schacon/grit.git |
Deneyeceğim. Bu komutla o anda içinde bulunduğumuz klasöre grit adında bir klasör açılacak ve içerisine projenin tam bir kopyası indirilecek.
hp@Hp-Computer git_projeleri $ git clone git://github.com/schacon/grit.git mygrit Cloning into mygrit... remote: Counting objects: 4051, done. remote: Compressing objects: 100% (2254/2254), done. remote: Total 4051 (delta 1812), reused 3919 (delta 1740) Receiving objects: 100% (4051/4051), 1.84 MiB | 384 KiB/s, done. Resolving deltas: 100% (1812/1812), done. |
İstersek komutu şu şekilde
hp@Hp-Computer git_projeleri $ git clone git://github.com/schacon/grit.git mygrit |
kullanarak klasör ismini kendimiz belirtebiliriz. Burada klasör ismimiz mygrit olacak.
Şimdi bir projenin hayat döngüsünü diyagram yardımıyla gösterelim:

Figure 2-1. dosyanızın durumlara göre hayat döngüsü.
Eğer tek başınıza bir projede çalışıyorsanız local olarak genel komutlar bunlar.
Şimdi projenizi nasıl dallandıracağınıza (branch) geçelim. Öncelikle ne olduğundan kısaca bahsedeyim. Branch (dallanma) projenizin bir anında var olan durumunu koruyarak projeniz üzerinde değişiklikler yapmanıza olanak tanır. Daha sonra bu değişiklikleri ana projeye uygulayabilir veya iptal edebilirsiniz. Bunu diyagramlar yardımıyla açıklayalım. İlk önce projenizi üç kere commit ettiğiniz varsayalım. Sırasıyla 98ca9, 34ac2,f30ab şu anda gördüğünüz gibi master branch tayız.
İşte tam bu noktada dallanmaya gitmek istiyoruz. O zaman şu komutla yeni bir branch oluşturuyoruz.
$ git branch testing |
Testing ismindeki branch oluştu ve bizim ana branch ımız olan master ile aynı noktaya point ediyor.
Peki hangi branch ta olduğumuzu nerden biliyoruz. İşte hangi branch ta olduğumuzu da head adında bir pointer tutuyor.
Gördüğünüz gibi şu anda master branch ındayız. Peki bunu komutla nasıl bileceğiz.
$ git branch hp@Hp-Computer proje1 $ git branch * master testing |
Gördüğünüz gibi master ın başında yıldız işareti var. Peki diğer branch a nasıl geçiyoruz.
$ git checkout testing hp@Hp-Computer proje1 $ git checkout testing Switched to branch 'testing' |
Şimdi testing branch ına geçtiğimize göre index.php dosyamızda bir değişiklik yapalım. Dosyamızı şu şekilde düzenleyelim
<?php if(first==true || second==true) { return true; } else { return false; } ?> |
ve git add . ve git commit le “ucuncu commit ” diye kaydedelim.
şimdi bu noktada master branchımıza geri dönelim.
hp@Hp-Computer proje1 $ git checkout master Switched to branch 'master' |
Şimdi index.php dosyamızı kontrol edelim.
<?php if(first==true || second==true) { return true; } ?> |
Gördüğünüz gibi yaptığımız değişiklikler görünmüyor. Çünkü onlar testing branchında bekliyor. Master branchında iken git log komutunu çalıştırırsak zaten “ucuncu commit” i göremeyiz.
Şimdi de master branch ında iken index.php dosyamızda bir değişiklik yapalım.
<?php if(first==true || second==true) { return true; } else { first=true; } ?> |
Peki tam bu noktada iki branchı birleştirmek istersek? O zaman şu komutu kullanıyoruz.
$git merge testing |
artık testing ve master dalları birleşti. Eğer birleşme sırasında çakışma meydana gelirse siz bu çakışmaları dosyayı açıp elle düzeltmeniz ve işeleme öyle devam etmeniz geriyor. Dosyayı açtığınızda zaten çakışmaların olduğu noktaları gösterecek size.
Bugünlük bu kadar, sonraki derslerimde komutlara devam edeceğim. İyi günler
Bunlara da Göz Atmak İsteyebilirsiniz.
<<< Önceki: Git Nedir? Git Kullanımı – Git Komutları – 2
Sonraki: Git Nedir? Git Kullanımı – Git Komutları – 4 >>>
Cok güzel bir calisma olmus ellinize saglik gercekten de cok yararli bilgiler var icnde, tekrardan saglun
en son örnekte (branchların) birleştirilmesini gösterdiğiniz örnekte “$ git branch testing” şeklinde göstermişsiniz ancak bu komut testing adında bir branch yaratmaya yarıyordu ve buna bağlı olarak Git bize bu isimde bir branch ın daha zaten var olduğu hatasını veriyor…bir yanlışlık mı var acaba?
Erdinc, haklısın o satırda bir problem olmuş. branch kelimesi yerine merge kelimesi kullanılması gerekiyordu, düzelttim.
Teşekkür ederim.
… [Trackback]…
[…] Read More: makale.kodmerkezi.net/git-nedir-git-kullanimi-git-komutlari-–-3.html […]…
Çok güzel bir çalışma olmuş. Ellerinize sağlık böyle yalın dili ve yoğun bilgisi olan kimselerin paylaşımlarının devamı dileği ile…
allah razı olsun 🙂
Yorum Bırakın!
En Son Yazılanlar
Codeigniter Dersleri
Kategoriler
Teknoloji Haberleri
Android Dersleri
Arşiv
İstatistikler
Sitemizin QR Kodu
Yeniliklerden İlk Sizin Haberiniz Olsun
KodMerkezi.Net Facebookta
En Çok Okunanlar
En Son Aranan Kelimeler
En Çok Oy Alanlar
Etiket Bulutu
İlginizi Çekecek Siteler
Arşiv
Yönetim
En Son Yapılan Yorumlar
En Çok Okunanlar