Close

2020-04-18

GIT Temel Kavramlar (2)

GIT Temel Kavramlar (2)

Temel kavramları öğrenmeye devam ediyoruz.   “git status” ile durumu kontrol ederek başlayalım.

ozgur-MacBook-Pro:gitsample ozgurozkok$ git status

On branch master

No commits yet

Untracked files:

  (use “git add <file>…” to include in what will be committed)

main.cpp

nothing added to commit but untracked files present (use “git add” to track)

Bu komutun çıktısını anladığımızda GIT  işini çözmüş olacağız 🙂   branch-master branch-commit

Çalışma dizinimizde bir adet dosya vardı.  Dizini GIT’ e tanıttık ve dizine izlenme yeteceği sağladık.  Dizindeki dosyamız ise henüz GIT tarafından izlenmiyor.   Dosyamızı GIT sistemine tanıtıyoruz ve izlenmesini söyleyeceğiz. 

ozgur-MacBook-Pro:gitsample ozgurozkok$ clear

ozgur-MacBook-Pro:gitsample ozgurozkok$ git add main.cpp

ozgur-MacBook-Pro:gitsample ozgurozkok$ git status

On branch master

No commits yet

Changes to be committed:

  (use “git rm –cached <file>…” to unstage)

new file:   main.cpp

GIT sistemi artık bu tek dosyamızı izliyor ve “değişiklikler var ama henüz commit etmediniz” diyor.  Dosyada yaptığımız değişiklikleri sisteme “yaptık ve şu nedenle yaptık” diyerek bildireceğiz. 

gitsample ozgurozkok$ git commit -m ‘dosyayı yaratırken yaptğım değişiklikler”

> git status

GIT kurulumunda kullanıcı girişi yapmadıysanız burada sizden kimlik girmenizi isteyecek.  

ozgur-MacBook-Pro:gitsample ozgurozkok$ git commit -m “dosyayı yaratırken yaptğım değişiklikler”

[master (root-commit) 02390c2] dosyayı yaratırken yaptğım değişiklikler

 1 file changed, 5 insertions(+)

 create mode 100644 main.cpp

COMMIT sırasında bir açıklama girdik.  Tek başınıza dahi çalışıyor olsanız açıklamaları tam ve net giriniz.  Takım çalışmasında bu zorunluyken , bireysel çalışırken işimize saygının sonucu olacaktır.  

COMMIT mesajlarını baştan özenli girmeye alışınız. 

STATUS ile durumu kontrol ediyoruz.  

ozgur-MacBook-Pro:gitsample ozgurozkok$ git status

On branch master

nothing to commit, working tree clean

ozgur-MacBook-Pro:gitsample ozgurozkok$ 

Şimdi dosyamıza bir satır ekleyelim.  

void main(){

    printf(“merhaba dünya”);

    printf(“ikinci mesajım”);

}

STATUS ile durumu kontrol edelim. 

ozgur-MacBook-Pro:gitsample ozgurozkok$ git status

On branch master

Changes not staged for commit:

  (use “git add <file>…” to update what will be committed)

  (use “git restore <file>…” to discard changes in working directory)

modified:   main.cpp

no changes added to commit (use “git add” and/or “git commit -a”)

Kodumuzda yapılan değişiklikleri bir önceki haline döndürebiliriz.  Hemen deneyelim.

ozgur-MacBook-Pro:gitsample ozgurozkok$ git restore main.cpp

Kodumuzu kontrol edersek eski haline geldiğini göreceğiz.  STATUS ile kontrol edelim. 

ozgur-MacBook-Pro:gitsample ozgurozkok$ git status

On branch master

nothing to commit, working tree clean

Şimdi tekrar değişiklikleri yapalım  ve  commit edelim.  

void main(){

    printf(“merhaba dünya”);

    printf(“ikinci yeni mesajım”);

}

ozgur-MacBook-Pro:gitsample ozgurozkok$ git add main.cpp 

ozgur-MacBook-Pro:gitsample ozgurozkok$ git commit -m “yeniden ekledim bi şeyler”

[master 4ef6ed1] yeniden ekledim bi şeyler

 1 file changed, 2 insertions(+)

ozgur-MacBook-Pro:gitsample ozgurozkok$ git status

On branch master

nothing to commit, working tree clean

ozgur-MacBook-Pro:gitsample ozgurozkok$ 

COMMIT ile ilgili bir iyi alışkanlık daha var. “ Her zaman çalışır halini commit ediniz”.  Elbetteki istsinaları olacaktır ama commit edilen kısımlar en azından compile olabilmek ve çalışabilmelidir.  

Önemli bir komutumuz daha var.   LOG ile  yaptığımız değişiklikleri ayrıntılı olarak görebiliyoruz.  

ozgur-MacBook-Pro:gitsample ozgurozkok$ git log

commit 4ef6ed1945e69d98599eb0495cec0f53504d87cc (HEAD -> master)

Author: ozgurozkok <info@ozgurozkok.com>

Date:   Sat Apr 18 18:29:51 2020 +0300

    yeniden ekledim bi şeyler

commit 02390c20a21fcc0d2881d3d5cb4d404a97176af1

Author: ozgurozkok <info@ozgurozkok.com>

Date:   Sat Apr 18 17:50:41 2020 +0300

    dosyayı yaratırken yaptğım değişiklikler

ozgur-MacBook-Pro:gitsample ozgurozkok$ 

ozgur-MacBook-Pro:gitsample ozgurozkok$ git log

commit 4ef6ed1945e69d98599eb0495cec0f53504d87cc (HEAD -> master)

Author: ozgurozkok <info@ozgurozkok.com>

Date:   Sat Apr 18 18:29:51 2020 +0300

    yeniden ekledim bi şeyler

commit 02390c20a21fcc0d2881d3d5cb4d404a97176af1

Author: ozgurozkok <info@ozgurozkok.com>

Date:   Sat Apr 18 17:50:41 2020 +0300

    dosyayı yaratırken yaptğım değişiklikler

Her commit in yanında bir ID görüyoruz.  Bu ID ile yaptığımız değişiklikleri görebiliyoruz. DIFF komutunu kullanmamız yeterlidir.  

ozgur-MacBook-Pro:gitsample ozgurozkok$ git diff 02390c20a21fcc0d2881d3d5cb4d404a97176af1

diff –git a/main.cpp b/main.cpp

index 9a05a03..b459695 100644

— a/main.cpp

+++ b/main.cpp

@@ -2,4 +2,6 @@

 void main(){

     printf(“merhaba dünya”);

+    

+    printf(“ikinci yeni mesajım”);

 }

\ No newline at end of file

Her COMMIT ile bir kayıt noktası oluşuyor.  Bu kayıt noktaları arasında kaynak kodumuzu döndürmek için CHECKOUT komutunu kullanıyoruz.