|
| 1 | +## Git'i Kurma ve Yapılandırma |
| 2 | + |
| 3 | +Git, açık kaynaklı ve platformlar arası bir sürüm kontrol aracıdır. Ubuntu gibi Linux ortamlarını kullanan biriyseniz, zaten git'in yüklü olduğunu görebilirsiniz, ancak yine de kurulum ve yapılandırmayı gözden geçireceğiz. |
| 4 | + |
| 5 | +Eğer sistemde zaten git yüklü ise güncel olduğumuzdan emin olmak da iyi bir fikirdir. |
| 6 | + |
| 7 | +### Git'in Kurulumu |
| 8 | + |
| 9 | +Daha önce de belirtildiği gibi, Git platformlar arası bir araçtır. Windows ve Linux için kurulumu anlatacağız, ancak macOS için de [burada](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) bulabilirsiniz. |
| 10 | + |
| 11 | +[Windows](https://git-scm.com/download/win) için resmi siteden kurucuyu indirebiliriz. |
| 12 | + |
| 13 | +Ayrıca Windows makinenizde `winget` komutunu da kullanabilirsiniz. Bu, Windows Uygulama Paket Yöneticiniz gibi düşünebilirsiniz. |
| 14 | + |
| 15 | +Herhangi bir şeyi kurmadan önce, Windows Makinemizde hangi sürümü olduğunu görelim. Bir PowerShell penceresi açın ve `git --version` komutunu çalıştırın. |
| 16 | + |
| 17 | + |
| 18 | + |
| 19 | +Ayrıca WSL Ubuntu sürümümüzün Git versiyonunuda kontrol edebiliriz. |
| 20 | + |
| 21 | + |
| 22 | + |
| 23 | +Yazının yazıldığı sırada en son Windows sürümü `2.35.1` olduğu için güncelleme yapmamız gerekiyor, bunu da göstereceğim. Linux için de benzer bir durum bekliyorum. |
| 24 | + |
| 25 | +En son kurulum programını indirdim ve sihirbazı çalıştırdım, bunu burada belgeleyeceğim. Önemli olan nokta, git'in en son sürümünü kurmadan önce önceki sürümleri kaldırmasıdır. |
| 26 | + |
| 27 | +Yani aşağıda gösterilen süreç, git olmayan bir sisteme kurulum yapacakmışsınız gibi çoğunlukla aynı süreçtir. |
| 28 | + |
| 29 | +Kurulum çok basittir. İndirilen dosyaya çift tıklayarak başlayın. GNU lisans anlaşmasını okuyun. Ancak unutmayın, bu ücretsiz ve açık kaynaklı bir yazılımdır. |
| 30 | + |
| 31 | + |
| 32 | + |
| 33 | +Şimdi, git ile ilişkilendirmek istediğimiz ek bileşenleri seçebiliriz. Windows'ta, Git Bash'i her zaman yüklüyorum, çünkü bu bize Windows üzerinde bash komut dosyalarını çalıştırma imkanı sağlar. |
| 34 | + |
| 35 | + |
| 36 | + |
| 37 | +Daha sonra kullanmak istediğimiz SSH Yürütülebilirini seçebiliriz. Ben bunu, Linux bölümünde görmüş olabileceğiniz dahili OpenSSH olarak bırakıyorum. |
| 38 | + |
| 39 | + |
| 40 | + |
| 41 | +Daha sonra etkinleştirmek isteyebileceğimiz deneysel özelliklerimiz var, ben bunlara ihtiyacım olmadığı için etkinleştirmiyorum, isterseniz kurulum üzerinden geri dönüp daha sonra bunları etkinleştirebilirsiniz. |
| 42 | + |
| 43 | + |
| 44 | + |
| 45 | +Kurulum tamamlandı, şimdi Git Bash'i açmayı veya en son sürüm notlarına bakmayı seçebiliriz. |
| 46 | + |
| 47 | + |
| 48 | + |
| 49 | +Son kontrol, PowerShell penceresinde şu anda hangi git sürümüne sahip olduğumuza bakmaktır. |
| 50 | + |
| 51 | + |
| 52 | + |
| 53 | +Son derece basit bir işlem ve şimdi en son sürümdeyiz. Linux makinede biraz geride olduğumuz görünüyor, bu yüzden güncelleme sürecini de geçebiliriz. |
| 54 | + |
| 55 | +Basitçe `sudo apt-get install git` komutunu çalıştırıyorum. |
| 56 | + |
| 57 | + |
| 58 | + |
| 59 | +Ayrıca aşağıdakini çalıştırabilirsiniz, bu git deposunu yazılım yüklemeleri için ekleyecektir. |
| 60 | + |
| 61 | +``` |
| 62 | +sudo add-apt-repository ppa:git-core/ppa -y |
| 63 | +sudo apt-get update |
| 64 | +sudo apt-get install git -y |
| 65 | +git --version |
| 66 | +``` |
| 67 | + |
| 68 | +### Git Yapılandırması |
| 69 | + |
| 70 | +Git'i ilk kullandığımızda bazı ayarları tanımlamamız gerekiyor: |
| 71 | + |
| 72 | +- Name(İsim) |
| 73 | +- Email(mail) |
| 74 | +- Default Editor(Varsayılan editor) |
| 75 | +- Line Ending(Satır Sonlandırma) |
| 76 | + |
| 77 | +Bu üç seviyede yapılabilir: |
| 78 | + |
| 79 | +- System = Tum Kullanıcılar |
| 80 | +- Global = Kullanıcının Tum Repoları |
| 81 | +- Local = Repolar |
| 82 | + |
| 83 | +Ornek: |
| 84 | +`git config --global user.name "Michael Cade"` |
| 85 | +`git config --global user.email Michael.Cade@90DaysOfDevOPs.com"` |
| 86 | +İşletim sisteminize bağlı olarak varsayılan metin düzenleyici belirlenecektir. Ubuntu makinede, aşağıdaki komut kullanılarak bunu visual studio code olarak değiştirebiliriz. |
| 87 | + |
| 88 | +`git config --global core.editor "code --wait"` |
| 89 | + |
| 90 | +Şimdi tüm git yapılandırmalarını görmek istiyorsak aşağıdaki komutu kullanabiliriz. |
| 91 | + |
| 92 | +`git config --global -e` |
| 93 | + |
| 94 | + |
| 95 | + |
| 96 | +Bu dosya herhangi bir makinede `.gitconfig` olarak adlandırılacaktır. Windows makinede bu, kullanıcı hesabınızın dizininde bulunur. |
| 97 | + |
| 98 | + |
| 99 | + |
| 100 | +### Git Teorisi |
| 101 | + |
| 102 | +Dünkü gönderide farklı versiyon kontrol türleri olduğunu belirtmiştim ve bunları iki farklı tipe ayırabiliriz. Birincisi İstemci-Sunucu ve diğeri Dağıtık versiyon kontrolüdür. |
| 103 | + |
| 104 | +### Client-Server Versiyon Kontrolü |
| 105 | + |
| 106 | +Git ortaya çıkmadan önce, İstemci-Sunucu versiyon kontrolü, varsayılan yöntemdi. Buna örnek olarak, 2000 yılında kurulan açık kaynaklı bir versiyon kontrol sistemi olan [Apache Subversion](https://subversion.apache.org/) gösterilebilir. |
| 107 | + |
| 108 | +Bu Client-Server versiyon kontrol modelinde, geliştirici ilk adımda kaynak kodunu ve gerçek dosyaları sunucudan indirir. Bu, çatışmaları ortadan kaldırmaz, ancak çatışmaların karmaşıklığını ve nasıl çözüleceğini azaltır. |
| 109 | + |
| 110 | + |
| 111 | + |
| 112 | +Örneğin, aynı dosyalar üzerinde çalışan iki geliştirici olduğunu düşünelim ve birincisi yarışı kazanır ve yeni değişiklikleriyle dosyayı ilk olarak sunucuya taşır veya yükler. İkinci geliştirici güncelleme yapmaya çalıştığında bir çatışma yaşar. |
| 113 | + |
| 114 | + |
| 115 | + |
| 116 | +Şimdi, geliştirici birinci geliştiricinin kod değişikliğini kendi değişikliğiyle birleştirir ve çatışmalar çözüldükten sonra taahhüt eder. |
| 117 | + |
| 118 | + |
| 119 | + |
| 120 | +### Dağıtık Versiyon Kontrolü |
| 121 | + |
| 122 | +Git, tek başına dağıtık versiyon kontrol sistemi değildir. Ancak genellikle kullanılan bir sistemdir. |
| 123 | + |
| 124 | +Git'in bazı temel avantajları şunlardır: |
| 125 | + |
| 126 | +- Hızlı |
| 127 | +- Akıllı |
| 128 | +- Esnek |
| 129 | +- Güvenli ve Korunaklı |
| 130 | + |
| 131 | +Client-Server versiyon kontrol modelinin aksine, her geliştirici kaynak deposunu indirir, yani her şeyi indirir. Taahhüt geçmişi, tüm dallar vb. |
| 132 | + |
| 133 | + |
| 134 | + |
| 135 | +## Kaynaklar |
| 136 | + |
| 137 | +- [What is Version Control?](https://www.youtube.com/watch?v=Yc8sCSeMhi4) |
| 138 | +- [Types of Version Control System](https://www.youtube.com/watch?v=kr62e_n6QuQ) |
| 139 | +- [Git Tutorial for Beginners](https://www.youtube.com/watch?v=8JJ101D3knE&t=52s) |
| 140 | +- [Git for Professionals Tutorial](https://www.youtube.com/watch?v=Uszj_k0DGsg) |
| 141 | +- [Git and GitHub for Beginners - Crash Course](https://www.youtube.com/watch?v=RGOj5yH7evk&t=8s) |
| 142 | +- [Complete Git and GitHub Tutorial](https://www.youtube.com/watch?v=apGV9Kg7ics) |
| 143 | + |
| 144 | +Gorusmek Uzere [Gun 37](day37.md) |
0 commit comments