-
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 Temelleri
-
3. Git Dalları
- 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 Ćzet
-
4. Bir Sunucuda Git Kurma
-
5. DaÄıtık Git
-
6. GitHub
- 6.1 Bir Projeye Katkıda Bulunmak
- 6.2 Proje Bakımı
- 6.3 Kurumsal Yƶnetim
- 6.4 GitHubāı otomatikleÅtirme
- 6.5 Ćzet
-
7. Git AraƧları
- 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 Alt Modüller
- 7.12 Demetleme (Bundling)
- 7.13 Git Nesnesini DeÄiÅtirme
- 7.14 Kimlik Bilgisi Depolama
- 7.15 Ćzet
-
8. Gitāi ĆzelleÅtirmek
-
9. Git ve DiÄer Sistemler
- 9.1 İstemci Olarak Git
- 9.2 Gitāe GeƧiÅ
- 9.3 Ćzet
-
10. Dahili Git Ćgeleri
- 10.1 Tesisat ve DƶÅeme (Plumbing ve Porcelain)
- 10.2 Git Nesneleri
- 10.3 Git Referansları
- 10.4 Packfiles
- 10.5 Refspec
- 10.6 Transfer Protokolleri
- 10.7 Bakım ve Veri Kurtarma
- 10.8 Ortam DeÄiÅkenleri
- 10.9 Ćzet
-
A1. Ek bƶlüm A: DiÄer Ortamlarda Git
- A1.1 Görsel Arayüzler
- A1.2 Visual Studio ile Git
- A1.3 Visual Studio Code ile Git
- A1.4 Eclipse ile Git
- A1.5 Sublime Text ile Git
- A1.6 Bash ile Git
- A1.7 Zsh ile Git
- A1.8 PowerShell ile Git
- A1.9 Ćzet
-
A2. Ek bƶlüm B: Gitāi Uygulamalarınıza Gƶmmek
- A2.1 Git Komut Satırı
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
A3. Ek bölüm C: Git Komutları
- A3.1 Kurulum ve Yapılandırma Komutları
- A3.2 Proje OluÅturma Komutları
- A3.3 Kısaca Poz (Snapshot) Alma
- A3.4 Dallandırma ve BirleÅtirme Komutları
- A3.5 Projeleri PaylaÅma ve Güncelleme Komutları
- A3.6 İnceleme ve KarÅılaÅtırma Komutları
- A3.7 Hata Ayıklama (Debugging) Komutları
- A3.8 Yamalama (Patching)
- A3.9 E-Posta Komutları
- A3.10 Harici Sistemler
- A3.11 Yƶnetim
- A3.12 Tesisat (Plumbing) Komutları
4.2 Bir Sunucuda Git Kurma - Bir Sunucuda Git Kurma
Bir Sunucuda Git Kurma
Åimdi kendi sunucunuzda bu protokoller üzerinde ƧalıÅan bir Git servisi kurmayı ele alacaÄız.
Not
|
Burada, temel ve basitleÅtirilmiÅ kurulumları yapmak iƧin gereken komutları ve adımları Linux tabanlı bir sunucuda gƶstereceÄiz, ancak bu servisleri macOS veya Windows sunucularında ƧalıÅtırmak da mümkündür. Aslında altyapınız iƧinde canlı bir sunucu kurmak, güvenlik ƶnlemlerinde veya iÅletim sistem araƧlarında farklılıkları beraberinde getirecektir, ancak nasıl yapılacaÄı konusunda genel olarak fikir sahibi olacaÄınızı umuyorum. |
Herhangi bir Git sunucusunu baÅlangıƧta kurabilmek iƧin mevcut bir repoyu yeni bir yalın repo (bare repository) olmak üzere (ƧalıÅma dizini iƧermeyen bir repo) dıÅa aktarmanız gerekir.
Bunu yapmak oldukƧa basittir.
Yeni bir yalın repo oluÅturmak üzere reponuzu kopyalamak iƧin kopyalama komutunu --bare
seƧeneÄi ile ƧalıÅtırırsınız.
Geleneksel olarak, yalın repo dizin adları, .git
soneki ile biter.
Åu Åekildedir:
$ git clone --bare my_project my_project.git
Cloning into bare repository 'my_project.git'...
done.
Artık my_project.git
dizininde Git dizin verilerinin bir kopyasına sahip olmalısınız.
Bu, Åuna benzer bir Åeye karÅılık gelir:
$ cp -Rf my_project/.git my_project.git
Yapılandırma dosyasında birkaƧ küçük fark vardır, ancak sizin amacınız iƧin bu neredeyse aynı Åeydir. ĆalıÅma dizini olmadan yalnızca Git reposunu alır ve ona ƶzel bir dizin oluÅturur.
Yalın Repoyu Sunucuya Alma
Artık repo iƧin bir yalın kopyaya sahip olduÄunuza gƶre, yapmanız gereken tek Åey onu bir sunucuya yerleÅtirmek ve protokollerinizi kurmaktır.
Diyelim ki SSH eriÅiminiz olan git.example.com
adında bir sunucu kurmuÅsunuz ve tüm Git repolarınızı /srv/git
dizini altında saklamak istiyorsunuz.
Bu sunucuda /srv/git
dizinin bulunduÄunu varsayarak, yeni reponuzu, yalın repoyu kopyalayarak aÅaÄıdaki gibi kurabilirsiniz:
$ scp -r my_project.git user@git.example.com:/srv/git
Artık, o sunucudaki /srv/git
dizinine SSH tabanlı okuma eriÅimi olan diÄer kullanıcılar, repoyu Åu komutu ƧalıÅtırarak kopyalayabilir:
$ git clone user@git.example.com:/srv/git/my_project.git
EÄer /srv/git/my_project.git
dizinine yazma eriÅimine sahip bir kullanıcı, sunucuya SSH ile baÄlanırsa, otomatik olarak itme eriÅimine de sahip olacaktır.
git init
komutunu --shared
seƧeneÄi ile ƧalıÅtırırsanız, Git otomatik olarak bir repoya grup yazma izinlerini ekler.
Bu komutu ƧalıÅtırarak, bu süreƧte hiƧbir katkı, referans vb. yok edilmeyecektir.
$ ssh user@git.example.com
$ cd /srv/git/my_project.git
$ git init --bare --shared
Bir Git reposunu almanın, yalın bir sürüm oluÅturmanın ve iÅ arkadaÅlarınızla birlikte SSH eriÅimine sahip olduÄunuz bir sunucuya yerleÅtirmenin ne kadar kolay olduÄunu gƶrdünüz. Åimdi aynı projede iÅbirliÄi yapmaya hazırsınız.
BirkaƧ kiÅinin eriÅimi olan kullanıÅlı bir Git sunucusunu ƧalıÅtırmak iƧin yapmanız gereken tek Åey budur. Sadece bir sunucuda SSH eriÅimine sahip hesaplar ekleyin ve tüm bu kullanıcılara okuma ve yazma eriÅimi veren yalın bir repoyu bir yere yerleÅtirin. Artık ƧalıÅmaya hazırsınız.
Sonraki birkaƧ bƶlümde, daha karmaÅık kurulumlara nasıl geniÅleyeceÄinizi gƶreceksiniz. Bu mevzu, her bir kullanıcı iƧin hesap oluÅturmak zorunda kalmadan, repolara genel okuma eriÅimi eklemek, aÄ arayüzleri kurmak ve daha fazlasını iƧerecek. Yine de birkaƧ kiÅiyle ƶzel bir projede iÅbirliÄi yapmak iƧin ihtiyacınız olan tek Åey bir SSH sunucusu ve bir yalın repodur.
Ufak Kurulumlar
EÄer küçük bir ekip veya organizasyonunuzda Gitāi denemek iƧin sadece birkaƧ geliÅtiriciniz varsa, iÅler sizin iƧin basit olabilir. Git sunucusu kurmanın en karmaÅık yƶnlerinden biri kullanıcı yƶnetimidir. Bazı repoların belirli kullanıcılar iƧin salt okunur, diÄerleri iƧin ise okuma/yazma izinli olmasını istiyorsanız, eriÅim ve izinleri düzenlemek biraz daha zor olabilir.
SSH EriÅimi
EÄer tüm geliÅtiricilerinizin zaten SSH eriÅimine sahip olduÄu bir sunucunuz varsa, en kolayı ilk repoyu orada kurmaktır, çünkü (geƧen bƶlümde anlattıÄımız gibi) neredeyse hiƧ iÅ yapmanıza gerek yoktur. EÄer repolarınızda daha karmaÅık eriÅim kontrolü türü izinler olmasını istiyorsanız, bunları sunucunuzun iÅletim sisteminin normal dosya sistem izinleri ile yƶnetebilirsiniz.
EÄer repolarınızı, yazma eriÅimi vermek istediÄiniz herkesin hesap sahip olmadıÄı bir sunucuya koymak istiyorsanız, o zaman onlar iƧin SSH eriÅimi kurmalısınız. Bu iÅlemi yapacak bir sunucunuz varsa, zaten bir SSH sunucusu kurulu olduÄunu ve sunucuya eriÅim saÄlamak iƧin bu yƶntemi kullandıÄınızı varsayıyoruz.
Takımınızdaki herkese eriÅim saÄlamanın birkaƧ yolu vardır.
İlk olarak, herkes iƧin birer hesap aƧaabilirsiniz, bu basit ancak sıkıcı olabilecek bir iÅtir.
Her yeni kullanıcı iƧin adduser
(veya olası alternatif useradd
) komutunu ƧalıÅtırmak ve geƧici Åifreler belirlemek istemeyebilirsiniz.
İkinci bir yƶntem, makinada tek bir git kullanıcı hesabı oluÅturmak, yazma eriÅimine sahip olacak her kullanıcıdan bir SSH genel anahtarı gƶndermelerini istemek ve bu anahtarı yeni git hesabının ~/.ssh/authorized_keys
dosyasına eklemektir.
Artık, herkes git hesabı üzerinden bu makineye eriÅebilecektir.
Bu, herhangi bir Åekilde katkı verilerini etkilemez (baÄlandıÄınız SSH kullanıcısı, iÅlediÄiniz katkıları etkilemez).
Bunu yapmanın baÅka bir yolu da SSH sunucunuzun bir LDAP sunucusu veya zaten kurulu olan baÅka bir merkezi kimlik doÄrulama kaynaÄından kimlik doÄrulamasını yapmasını saÄlamaktır. Her kullanıcı makineye kabuk eriÅimi alabildiÄi sürece, aklınıza gelebilecek herhangi bir SSH kimlik doÄrulama mekanizması ƧalıÅmalıdır.