-
1. Başlangıç
- 1.1 Sürüm Denetimi
- 1.2 Git’in Kısa Tarihçesi
- 1.3 Git Nedir?
- 1.4 Komut Satırı
- 1.5 Git’i Yüklemek
- 1.6 Git’i İlk Defa Kurmak
- 1.7 Yardım Almak
- 1.8 Özet
-
2. Git Basics
-
3. Git Branching
- 3.1 Dallar
- 3.2 Kısaca Dallandırma ve Birleştirme Temelleri
- 3.3 Dal Yönetimi
- 3.4 İş Akışı Dallandırması
- 3.5 Uzak Dallar
- 3.6 Yeniden Temelleme (rebase)
- 3.7 Summary
-
4. Git on the Server
- 4.1 İletişim Kuralları (Protocols)
- 4.2 Bir Sunucuda Git Kurma
- 4.3 SSH Ortak Anahtarınızı Oluşturma
- 4.4 Sunucu Kurma
- 4.5 Git Cini (Daemon)
- 4.6 Akıllı HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Üçüncü Taraf Barındırma (Hosting) Seçenekleri
- 4.10 Summary
-
5. Distributed Git
- 5.1 Dağıtık İş Akışları
- 5.2 Projenin Gelişiminde Rol Almak
- 5.3 Bir Projeyi Yürütme
- 5.4 Summary
-
6. GitHub
-
7. Git Tools
- 7.1 Düzeltme Seçimi
- 7.2 Etkileşimli İzlemleme (Staging)
- 7.3 Saklama ve Silme
- 7.4 Çalışmanızı İmzalama
- 7.5 Arama
- 7.6 Geçmişi Yeniden Yazma
- 7.7 Reset Komutunun Gizemleri
- 7.8 İleri Seviye Birleştirme
- 7.9 Rerere
- 7.10 Git’le Hata Ayıklama
- 7.11 Submodules
- 7.12 Bundling
- 7.13 Replace
- 7.14 Credential Storage
- 7.15 Summary
-
8. Customizing Git
- 8.1 Git Configuration
- 8.2 Git Attributes
- 8.3 Git Hooks
- 8.4 An Example Git-Enforced Policy
- 8.5 Summary
-
9. Git and Other Systems
- 9.1 Git as a Client
- 9.2 Migrating to Git
- 9.3 Summary
-
10. Git Internals
- 10.1 Plumbing and Porcelain
- 10.2 Git Objects
- 10.3 Git References
- 10.4 Packfiles
- 10.5 The Refspec
- 10.6 Transfer Protocols
- 10.7 Maintenance and Data Recovery
- 10.8 Environment Variables
- 10.9 Summary
-
A1. Ek bölüm A: Git in Other Environments
- A1.1 Graphical Interfaces
- A1.2 Git in Visual Studio
- A1.3 Git in Visual Studio Code
- A1.4 Git in Eclipse
- A1.5 Git in Sublime Text
- A1.6 Git in Bash
- A1.7 Git in Zsh
- A1.8 Git in PowerShell
- A1.9 Summary
-
A2. Ek bölüm B: Embedding Git in your Applications
- A2.1 Command-line Git
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
A3. Ek bölüm C: Git Commands
- A3.1 Setup and Config
- A3.2 Getting and Creating Projects
- A3.3 Basic Snapshotting
- A3.4 Branching and Merging
- A3.5 Sharing and Updating Projects
- A3.6 Inspection and Comparison
- A3.7 Debugging
- A3.8 Patching
- A3.9 Email
- A3.10 External Systems
- A3.11 Administration
- A3.12 Plumbing Commands
4.3 Git on the Server - SSH Ortak Anahtarınızı Oluşturma
SSH Ortak Anahtarınızı Oluşturma
Birçok Git sunucusu, kullanıcı kimliklerini SSH ortak anahtarları ile doğrular.
Bir ortak anahtar elde etmek için, sistemdeki ortak anahtarı olmayan her kullanıcının, bir adet oluşturması gerekir.
Bu süreç tüm işletim sistemlerinde benzerdir.
İlk olarak, zaten bir anahtarınızın olup olmadığını kontrol etmelisiniz.
Varsayılan olarak, bir kullanıcının SSH anahtarları, kullanıcının ~/.ssh
dizininde depolanır.
Bu dizine gidip içeriği listeleyerek zaten bir anahtarınız olup olmadığını kolayca kontrol edebilirsiniz:
$ cd ~/.ssh
$ ls
authorized_keys2 id_dsa known_hosts
config id_dsa.pub
id_dsa
veya id_rsa
gibi adlara sahip bir çift dosya arıyorsunuz ve buna uygun .pub
uzantılı bir dosya.
.pub
dosyası ortak anahtarı temsil eder, diğer dosya ise buna karşılık gelen özel anahtardır.
Bu dosyalara sahip değilseniz (veya .ssh dizininiz bile yoksa), Linux/macOS sistemlerinde SSH paketi ile birlikte sağlanan ve Windows için Git ile birlikte gelen ssh-keygen adlı bir programı çalıştırarak bunları oluşturabilirsiniz.
$ ssh-keygen -o
Generating public/private rsa key pair.
Enter file in which to save the key (/home/schacon/.ssh/id_rsa):
Created directory '/home/schacon/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/schacon/.ssh/id_rsa.
Your public key has been saved in /home/schacon/.ssh/id_rsa.pub.
The key fingerprint is:
d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 schacon@mylaptop.local
İlk olarak, anahtarın nereye kaydedileceğini onaylar (.ssh/id_rsa
), ardından iki kez bir parola sorar (eğer anahtarı kullanırken bir şifre girmek istemiyorsanız, boş bırakabilirsiniz).
Ancak, bir parola kullanıyorsanız, parola kırma saldırılarına karşı daha dirençli olan bir formatta özel anahtarı kaydetmek için -o
seçeneğini eklediğinizden emin olun (varsayılan formattan daha güvenlidir).
Ayrıca, her seferinde parolayı girmekten kaçınmak için ssh-agent
aracını da kullanabilirsiniz.
Şimdi, bunu yapan her kullanıcı, ortak anahtarlarını size veya Git sunucusunu yöneten kişiye (eğer ortak anahtarları gerektiren bir SSH sunucu kurulumu kullanıyorsanız) göndermek zorundadır.
Yapmaları gereken tek şey .pub
dosyasının içeriğini kopyalayıp e-posta ile göndermektir.
Ortak anahtarlar şu şekilde görünür:
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@mylaptop.local
Farklı işletim sistemlerinde SSH anahtarı oluşturma konusunda daha detaylı bilgi için, SSH anahtarı oluşturma konusundaki GitHub rehberine göz atabilirsiniz: https://help.github.com/articles/generating-ssh-keys.