Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Git: Bildiğiniz Gibi Değil

Git: Bildiğiniz Gibi Değil

Karabük Üniversitesi Programlama Günleri 2016'da gerçekleştirdiğim Git sunumu yansılarıdır.

These are the slides of my talk at Karabuk University Programming Days 2016. The slides are in Turkish.

Lemi Orhan Ergin

February 23, 2016
Tweet

More Decks by Lemi Orhan Ergin

Other Decks in Programming

Transcript

  1. GIT bildiğiniz gibi değil… LEMİ ORHAN ERGİN Agile Software Craftsman,

    ACM 2001’den bu yana yazılım geliştiriyor Agile Turkey topluluk lideri Software Craftsmanship Turkey kurucusu Yazılımcı, Mimar, Eğitmen, Koç, Danışman 2009’dan bu yana GitMan Sony & eBay/GittiGidiyor eski çalışanı ACM’de yönetici ortak /lemiorhan lemiorhanergin.com @lemiorhan
  2. Revision Control System revizyonları yamalar halinde (patch) bir isimlendirme kuralına

    uygun şekilde saklar. http://en.wikipedia.org/wiki/Revision_Control_System YEREL Sürüm Kontrol Sistemi
  3. merkezİ Sürüm Kontrol Sistemi Dosyaları ortak bir alanda saklar (sunucu)

    ve herkes buraya kendi kişisel makinalarından erişir (istemci)
  4. merkezİ Sürüm Kontrol Sistemi Kullanıcılarda dosyaların sadece son sürümleri bulunur

    Eğer sunucu bozulursa, tüm sürümleri kaybetme ihtimali vardır
  5. Sturgeon’nun Kuralı Der ki; bir işe yaramaz Yaptığımız şeylerin %90’ı

    İşe yarayan çözümleri bulabilmek için deneysel çalışmalar yapabileceğimiz, korkmadan sistemi dağıtabileceğimiz, güvenilir bir sisteme ihtiyaç vardır
  6. Dağıtık Sürüm Kontrol Sistemi Sunucuya erişim sorunlarına ve sunucudaki sürümlere

    bağımlılıktan endişe duymadan yerel değişiklikler yapabilmenizi sağlar
  7. 2.7Gb 8.2Gb 450MB ? MOZILLA 350Mb kaynak kod İÇİN 1998’den

    bu yana yazılan Ne kadar bİR DİSK ALANI GEREKLİ
  8. Kaynak Kod Woking Copy Cache Staging Area / The Index

    Obje Veritabanı Uzak Depo Upstream Repo / Remote Repo Kendi makinamız Sunucu .git Folder / Object Database
  9. Kaynak Kod Woking Copy Cache Staging Area / The Index

    Obje Veritabanı Uzak Depo Upstream Repo / Remote Repo Kendi makinamız Sunucu .git Folder / Object Database
  10. Kaynak Kod Woking Copy Cache Staging Area / The Index

    Obje Veritabanı Uzak Depo Upstream Repo / Remote Repo Kendi makinamız Sunucu .git Folder / Object Database
  11. Kaynak Kod Woking Copy Cache Staging Area / The Index

    Obje Veritabanı Uzak Depo Upstream Repo / Remote Repo Kendi makinamız Sunucu .git Folder / Object Database
  12. Kaynak Kod Woking Copy Cache Staging Area / The Index

    Obje Veritabanı Uzak Depo Upstream Repo / Remote Repo Kendi makinamız Sunucu .git Folder / Object Database
  13. Kaynak Kod Woking Copy Cache Staging Area / The Index

    Obje Veritabanı Uzak Depo Upstream Repo / Remote Repo Kendi makinamız Sunucu .git Folder / Object Database
  14. Kaynak Kod Woking Copy Cache Staging Area / The Index

    Obje Veritabanı Uzak Depo Upstream Repo / Remote Repo Kendi makinamız Sunucu .git Folder / Object Database
  15. Kaynak Kod Woking Copy Cache Staging Area / The Index

    Obje Veritabanı Uzak Depo Upstream Repo / Remote Repo Kendi makinamız Sunucu .git Folder / Object Database
  16. Kaynak Kod Woking Copy Cache Staging Area / The Index

    Obje Veritabanı Uzak Depo Upstream Repo / Remote Repo Kendi makinamız Sunucu $ git add .git Folder / Object Database
  17. Kaynak Kod Woking Copy Cache Staging Area / The Index

    Obje Veritabanı Uzak Depo Upstream Repo / Remote Repo Kendi makinamız Sunucu $ git commit .git Folder / Object Database
  18. Kaynak Kod Woking Copy Cache Staging Area / The Index

    Obje Veritabanı .git Folder / Object Database Uzak Depo Upstream Repo / Remote Repo Kendi makinamız Sunucu $ git push
  19. Kaynak Kod Woking Copy Cache Staging Area / The Index

    Obje Veritabanı .git Folder / Object Database Uzak Depo Upstream Repo / Remote Repo Kendi makinamız Sunucu
  20. Kaynak Kod Woking Copy Cache Staging Area / The Index

    Obje Veritabanı .git Folder / Object Database Uzak Depo Upstream Repo / Remote Repo Kendi makinamız Sunucu $ git fetch
  21. Kaynak Kod Woking Copy Cache Staging Area / The Index

    Obje Veritabanı Uzak Depo Upstream Repo / Remote Repo Kendi makinamız Sunucu $ git merge FETCH_HEAD .git Folder / Object Database
  22. Kaynak Kod Woking Copy Cache Staging Area / The Index

    Obje Veritabanı Uzak Depo Upstream Repo / Remote Repo Kendi makinamız Sunucu $ git pull KISAYOL .git Folder / Object Database
  23. Kaynak Kod Woking Copy Cache Staging Area / The Index

    Obje Veritabanı Uzak Depo Upstream Repo / Remote Repo Kendi makinamız Sunucu .git Folder / Object Database
  24. Kaynak Kod Woking Copy Cache Staging Area / The Index

    Obje Veritabanı Uzak Depo Upstream Repo / Remote Repo Kendi makinamız Sunucu $ git clone KISAYOL .git Folder / Object Database
  25. Königsberg, Prussia’daki 7 köprü Yıl 1735 Her bir köprüden bir

    kez geçerek tüm şehri dolaşabilir misiniz? Leonhard Euler
  26. klasör klasör klasör dosya dosya dosya GIT bildiğiniz gibi değil…

    commit $ git add . $ git commit -m “first commit”
  27. klasör klasör klasör dosya dosya dosya GIT bildiğiniz gibi değil…

    commit branch HEAD $ git add . $ git commit -m “first commit”
  28. klasör klasör klasör dosya dosya dosya GIT bildiğiniz gibi değil…

    commit klasör klasör klasör dosya commit branch HEAD $ git add . $ git commit -m “second commit”
  29. commit commit commit klasör klasör klasör dosya dosya dosya GIT

    bildiğiniz gibi değil… commit klasör klasör klasör dosya commit branch HEAD klasör dosya commit $ git add . $ git commit -m “third commit”
  30. GIT bildiğiniz gibi değil… branch HEAD commit commit commit $

    git add . $ git commit -m “third commit”
  31. d99108a master HEAD $ git commit -m "first commit" [master

    (root-commit) d99108a] first commit 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .gitignore
  32. d99108a master HEAD a4510bc $ git commit -m "second commit"

    [master a4510bc] second commit 1 file changed, 1 insertion(+)
  33. d99108a master HEAD a4510bc b2be58f $ git commit -m "third

    commit" [master b2be58f] third commit 1 file changed, 1 insertion(+)
  34. d99108a a4510bc b2be58f $ git commit -m "fourth commit" [master

    8810ac4] fourth commit 1 file changed, 1 insertion(+) master HEAD 8810ac4 Agh! Son commit’e bir değişiklik eklemeyi unutmuşum. Son commit’i değiştireyim. “ ”
  35. d99108a a4510bc b2be58f $ git commit --amend [master 1fa3409] third

    commit 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 readme.txt 1fa3409 Aynı ortak ata ile ilişkili 2. bir commit oluştu master HEAD 8810ac4
  36. d99108a a4510bc b2be58f 1fa3409 master HEAD 8810ac4 bb43c12 $ git

    commit -m "fifth commit" [master bb43c12] fifth commit 1 file changed, 1 insertion(+)