Git 101 (Ya da 100)

B9d8065694ec51e12e4c6223b25970cf?s=47 webBox
October 04, 2013

Git 101 (Ya da 100)

Bilgisayar programlamaya yeni başlayanlar için `git` kullanımına giriş.

B9d8065694ec51e12e4c6223b25970cf?s=128

webBox

October 04, 2013
Tweet

Transcript

  1. `git` - 101 (ya da 100)

  2. Software Development & Consultancy webboxio

  3. Uğur “vigo” Özyılmazel vigobronx vigo

  4. `git` Nedir? DVCS Dağıtık Çalışan Sürüm Kontrol Sistemi

  5. ▪ Yazdığınız her şeyin bir kopyasının saklanması, ▪ İstediğiniz an

    herhangi bir sürüme dönebilme özgürlüğü, ▪ O an’ı dondurmak ve O an’a geri dönebilmek, zamanda yolculuk yapmak, ▪ İstediğiniz bir sürümü başka bir kişiyle paylaşabilmek. Sürüm Kontrol Nedir?
  6. Tarihçesi ▪ Linus Torvalds ▪ Aralık 2005, V 1.0 ▪

    Ağustos 2013, V 1.8.4 http://git-scm.com/
  7. Kurulum Windows http://git-scm.com/download/win Linux `git-core` package Mac (Kurulu geliyor) http://git-scm.com/

  8. VERSİYON’lamak ???

  9. dosya.txt Merhaba dünya SAVE

  10. dosya.txt Merhaba dünya Merhaba ikinci satır SAVE (versiyon 2)

  11. dosya.txt dosya_A.txt dosya_B.txt

  12. dosya.txt dosya_A.txt dosya_B.txt 3 versiyon

  13. dosya.txt $ git log --oneline cd2ca60 versiyon 3 67e675b versiyon

    2 b401c5b versiyon 1
  14. dosya_kopya.txt dosya.txt Küçük bir deneme yapmak için orijinali bozmadan kopya

    almak gerekebilir!
  15. Merhaba dünya Satır 2 Satır 3 Merhaba Satır 4 dosya.txt

  16. Merhaba dünya Satır 2 Satır 3 Merhaba Satır 4 dosya_2.txt

    dosya.txt Hello World Satır 2 Satır 3 Bu yeni Satır 4 İlave satır ekledim
  17. Merhaba dünya Satır 2 Satır 3 Merhaba Satır 4 dosya_2.txt

    dosya.txt Hello World Satır 2 Satır 3 Bu yeni Satır 4 İlave satır ekledim
  18. Değişiklikleri nasıl aktaracağım?

  19. Değişiklikleri nasıl aktaracağım? Sürüm Kontrol yardımıyla!

  20. Repository (Depo) $ mkdir proje # dizin oluştur $ cd

    proje $ git init # depoyu oluştur $ echo “merhaba” > dosya.txt $ git status
  21. Durum (git status) Untracked files git add

  22. Takip altına alınmamış dosyalar var! Lütfen `git add`komutu ile bu

    dosyaları takibe al!
  23. Durum (status) Eklenecek dosya

  24. Zamanı Dondurmak (git commit) $ git commit -m "versiyon 1"

    [master (root-commit) a47ed24] versiyon 1 1 file changed, 1 insertion(+) create mode 100644 dosya.txt $ git status # On branch master nothing to commit, working directory clean
  25. Son Durum Ne? $ git log --oneline a47ed24 versiyon 1

    SHA HASH (Kısa) (O anın indeks numarası)
  26. Gerektiğinde bu noktaya dönmek için `a47ed24` bilgisini kullanacağız .

  27. Dosya Oluştur / Düzenle $ echo "dosya için ek satır"

    >> dosya.txt $ echo "merhaba 2" > dosya2.txt $ ls dosya.txt dosya2.txt $ git status
  28. Son Durum Düzenlemiş dosya Yeni dosya

  29. Değişen dosyalar var, buna ilave yeni dosyalar var ve bu

    yeni dosyalar takipte değil!
  30. Değişen ve yeni oluşan dosyaları `git add` komutu ile takibe

    almamızı istiyor `git` .
  31. Ekleme (git add) $ git add dosya.txt $ git add

    dosya2.txt $ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # ## modified: dosya.txt ## new file: dosya2.txt $ git commit -m “versiyon 2”
  32. Yüzeysel BRANCH

  33. Kopya Çıkartmak (branch) $ git branch * master $ git

    checkout -b deneme $ git branch * deneme master $ echo "dosya 3" > dosya3.txt $ git add dosya3.txt $ git commit -m "dosya3 eklendi" $ ls dosya.txt dosya2.txt dosya3.txt $ git checkout master $ ls dosya.txt dosya2.txt git branch deneme git checkout deneme
  34. master deneme dosya.txt dosya2.txt dosya.txt dosya2.txt dosya3.txt

  35. None
  36. `deneme` deki değişikler uygunsa artık bu durumu ana branch’e yani

    master branch’e aktaralım!
  37. Birleştirme (git merge) $ git merge deneme

  38. Birleştirme (git merge) $ git log --graph --decorate --oneline *

    07bb9ce (HEAD, master, deneme) dosya3 eklendi * dc45fd2 versiyon 2 * a47ed24 versiyon 1 birleşilen branch 07bb9ce HEAD son revizyon
  39. None
  40. $ git log --oneline

  41. $ git show dc45fd2

  42. SHA (Uzun)

  43. dc45fd2 (kısa)

  44. ▪ pull, push, fetch, remote ▪ clone, branch, rm ▪

    rebase, diff, log ▪ tag, notes ▪ config Diğer `git` Fonksiyonları
  45. Araçlar (Ücretsiz) http://windows.github.com http://mac.github.com http://www.sourcetreeapp.com/ Terminal

  46. http://vigo.github.io/git-tips/ (Türkçe) http://gitready.com/ http://gitimmersion.com/ http://try.github.io/ https://www.codeschool.com/courses/git-real * https://www.codeschool.com/courses/git-real-2 * Kaynaklar

    * Ücretli