Anasayfa » Git

Git Nedir? Git Kullanımı – Git Komutları – 3

20 Eylül 2011 8.667 kez okundu 6 yorum
1 Star2 Stars3 Stars4 Stars5 Stars (2 oy,5 üzerinden : 5,00 )
Loading...

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 &lt;file&gt;..." to update what will be committed)
#   (use "git checkout -- &lt;file&gt;..." 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 &lt;hp@Hp-Computer.(none)&gt;
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

<<< Önceki:

Sonraki: >>>


Facebookta Paylaş

6 yorum »

  • galip dedi ki:

    Cok güzel bir calisma olmus ellinize saglik gercekten de cok yararli bilgiler var icnde, tekrardan saglun

  • erdinc dedi ki:

    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?

  • admin dedi ki:

    Erdinc, haklısın o satırda bir problem olmuş. branch kelimesi yerine merge kelimesi kullanılması gerekiyordu, düzelttim.
    Teşekkür ederim.

  • Homepage dedi ki:

    … [Trackback]…

    […] Read More: makale.kodmerkezi.net/git-nedir-git-kullanimi-git-komutlari-–-3.html […]…

  • theCodeGuru dedi ki:

    Ç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…

  • Erdem dedi ki:

    allah razı olsun 🙂

Yorum Bırakın!

Yorum yaz, yada kendi sitende trackback (Geri besleme) olarak ekle. Ayrıca RSS ile bu konuya üye olabilirsin. .

Nazik olun. Temiz tutun. Konu dışına çıkmayın. Spam yaratmayın.

Bu tagları kullanabilirsiniz:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Bloğumuz gavatarı desteklemektedir. Kendi gavatarınızı edinmek için lütfen Gravatar a üye olun.