-
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
1.6 Başlangıç - Git’i İlk Defa Kurmak
Git’i İlk Defa Kurmak
Şimdi Git sisteminizde kurulu olduğuna göre, Git ortamınızı özelleştirmek için birkaç ayar yapmak isteyebilirsiniz. Bu ayarları bir bilgisayarda yalnızca bir kere yapmanız yeterli, güncelleme yapsanız bile kaybolmayacaklardır. Ayrıca istediğinizde gerekli komutları çalıştırarak onları değiştirebilirsiniz.
Git, git config
adında, size Git’in tüm yönleriyle nasıl göründüğünü ve çalıştığını yöneten, yapılandırma değişkenlerini görme ve değiştirme kabiliyetini veren bir araca sahiptir.
Bu değişkenler üç farklı yerde saklanabilir:
-
/etc/gitconfig
dosyası: Sistemdeki tüm kullanıcılara ve onların repolarına uygulanmış olan değerleri içerir. Eğergit config
komutuna--system
opsiyonunu eklerseniz, okuma ve yazma işlemlerini bu dosya üzerinden gerçekleştirir. (Çünkü bu bir sistem yapılandırma dosyasıdır, değişiklik yapmak için yönetici veya süper kullanıcı ayrıcalığına ihtiyacınız vardır.) -
~/.gitconfig
ya da~/.config/git/config
dosyası: Size özel ve sizin kullanıcı hesabınıza ait olan değerler.--global
seçeneğini yazarak Git’in okuma ve yazma işlemlerini özellikle bu dosya üzerinden yapmasını sağlayabilirsiniz, bu durum sisteminizde çalıştığınız tüm repoları etkiler. -
Hangi repoyu kullanıyorsanız o repodaki Git klasöründeki
config`dosyası (tam olarak `.git/config
): O repoya özgüdür. Git’i--local
komutuyla bu dosya üzerinden okuma ve yazma işlemlerini yapmaya zorlayabilirsiniz, hatta bu seçim aslında varsayılan olarak gelir. (Doğal olarak, bu seçeneğin düzgün çalışması için, bir Git reposunun içinde bulunmanız gerekmektedir.)
Herhangi bir seviyedeki değerler, kendinden bir önceki seviyede olan değerleri geçersiz kılar. Dolayısıyla .git/config
değerleri /etc/gitconfig
değerlerini geçersiz kılar.
Windows sistemlerinde Git, $HOME
klasöründeki .gitconfig
dosyasını arar. (çoğu kişide C:\Users\$USER
konumundadır)
MSys köküyle ilintili olmasına rağmen, Git’i bilgisayarınıza kurarken nereye kurulacağını seçtiğiniz etc/gitconfig
dosyasını da arar.
Eğer Windows için Git’in 2.x veya daha iler bir sürümünü kullanıyorsanız, Windows XP’de C:\Documents and Settings\All Users\Application Data\Git\config
sistem-seviyesinde bulunan bir yapılandırma dosyası vardır. Windows Vista ve daha yeni sürümlerdeki konumu ise: C:\ProgramData\Git\config
.
Bu yapılandırma dosyası yalnızca bir yönetici olarak git config -f <dosya>
kullanılarak değiştirilebilir.
Tüm ayarlarınızı ve onların nereden geldiğini görmek için şu komutu kullanabilirsiniz:
$ git config --list --show-origin
Kimliğiniz
Git’i ilk kurduğunuzda yapmanız gereken ilk şey, kullanıcı adınızı ve e-postanızı belirlemek olmalıdır. Bunu yapmak önemlidir çünkü her Git katkısı (commit) bu bilgileri kullanır ve tüm işlediğiniz katkılara değişmez bir şekilde gömülmüştür.
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
--global
seçeneğini kullandığınızda bu işlemi yalnızca bir kere yaptığınızı tekrar etmekte fayda vardır, çünkü Git sisteminizde her zaman global olarak tanımladığınız bilgiyi kullanacaktır.
Eğer bu bilgileri bir projeye özel olarak geçersiz kılmak ve o projeye özgü bilgiler tanımlamak isterseniz, bu komutu projenin içindeyken ve --global
seçeneği "olmadan" çalıştırın.
VCS araçlarının çoğu onları ilk çalıştırdığınızda bu bilgileri tanımlamanız için size yardımcı olacaktır.
Editörünüz
Kimliğinizi artık tanımladığımıza göre, mesaj yazmak için kullanacağınız varsayılan metin editörü ayarınızı yapılandırmanın zamanı geldi. Eğer bu ayarı yapmazsanız, Git, sisteminizin varsayılan editörünü kullanacaktır.
Eğer Emacs gibi farklı bir metin editörü kullanmak isterseniz, şunu yapabilirsiniz:
$ git config --global core.editor emacs
Windows sisteminde farklı bir metin editörü kullanmak isterseniz o editörün çalıştırılabilir dosyasının tam yolunu belirtmelisiniz. Bu durum da editörünüzün nasıl paketlendiğine bağlı olarak değişiklik gösterebilir.
Popüler bir editör olan Notepad++'ı, 64-bit’lik sürümler tüm eklentileri desteklemediği için yüksek ihtimalle 32-bit’lik sürüm kullanacaksınız. Eğer 32-bit’lik bir Windows sistemdeyseniz ya da 64-bit’lik sistemde 64-bit’lik editöre sahipseniz, şöyle bir komut girmelisiniz:
$ git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
Vim, Emacs ve Notepad++, Windows, Linux ya da macOS gibi sistemlerde geliştiriciler tarafından sıkça kullanılan popüler editörlerdir.
Eğer başka bir editör ya da 32-bit’lik sürüm kullanıyorsanız, favori editörünüzü nasıl kuracağınız hakkında bilgi almak için şurayı okuyabilirsiniz: core.editor
Eğer editörlerinizi bu şekilde kurmazsanız, Git çalıştırmak için uğraştığında kendinizi çok kafa karıştırıcı bir durumda bulabilirsiniz. Windows sistemdineki bir örnek, Git tarafından başlatılan bir düzenleme sırasında erken sona eren bir Git işlemi içerebilir.
Ayarlarınızı Gözden Geçirmek
Eğer yapılandırma ayarlarınızı gözden geçirmek istiyorsanız, git config --list
komutunu kullanarak Git’in o aşamada bulabildiği tüm ayarları listelemesini sağlayabilirsiniz.
$ git config --list
user.name=John Doe
user.email=johndoe@example.com
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto
...
Anahtarlara birden çok kez rastlayabilirsiniz çünkü Git aynı anahtarı farklı dosyalardan okur (örneğin /etc/gitconfig
ve ~/.gitconfig
).
Bu durumda, Git gördüğü her eşsiz anahtar için son değeri kullanır.
Ayrıca Git’in belli bir anahtarın değeri hakkında ne düşündüğünü görmenin yolu da şu şekildedir: git config <key>
:
$ git config user.name
John Doe
Git birden fazla dosyadan aynı yapılandırma değişkeni değerlerini okuyabildiği için beklemediğiniz bir değerle karşılaşmanız ve nedenini anlayamamanız olasıdır. Bunun gibi durumlarda Git’i o değerin kökeniyle sorgu yapabilir ve hangi yapılandırma dosyasının o değeri belirlemede son sözü söylediğini öğrenebilirsiniz:
$ git config --show-origin rerere.autoUpdate
file:/home/johndoe/.gitconfig false