19 KiB
GitHub'a Giriş
Bu ders, kodunuzu barındırmak ve değişiklikleri yönetmek için kullanılan GitHub'ın temel bilgilerini kapsar.
Sketchnote: Tomomi Imura
Ders Öncesi Test
Giriş
Bu derste şunları öğreneceğiz:
- Makinenizde yaptığınız çalışmaları takip etmek
- Başkalarıyla projeler üzerinde çalışmak
- Açık kaynak yazılıma nasıl katkıda bulunulacağı
Ön Koşullar
Başlamadan önce, Git'in yüklü olup olmadığını kontrol etmeniz gerekiyor. Terminalde şu komutu yazın:
git --version
Eğer Git yüklü değilse, Git'i indirin. Ardından, terminalde yerel Git profilinizi ayarlayın:
git config --global user.name "adınız"git config --global user.email "e-posta adresiniz"
Git'in zaten yapılandırılmış olup olmadığını kontrol etmek için şu komutu yazabilirsiniz:
git config --list
Ayrıca bir GitHub hesabına, bir kod düzenleyiciye (örneğin Visual Studio Code) ve terminalinizi (veya komut istemini) açmanız gerekecek.
github.com adresine gidin ve henüz yapmadıysanız bir hesap oluşturun veya giriş yaparak profilinizi doldurun.
✅ GitHub dünyadaki tek kod deposu değildir; başka seçenekler de vardır, ancak GitHub en bilinenidir.
Hazırlık
Yerel makinenizde (laptop veya PC) bir kod projesi içeren bir klasöre ve başkalarının projelerine nasıl katkıda bulunacağınızı göstermek için bir örnek olarak kullanılacak bir GitHub'da halka açık bir depoya ihtiyacınız olacak.
Kod Yönetimi
Diyelim ki yerel olarak bir kod projesi içeren bir klasörünüz var ve ilerlemenizi Git - sürüm kontrol sistemi - kullanarak takip etmek istiyorsunuz. Bazı insanlar Git kullanmayı gelecekteki kendinize bir aşk mektubu yazmaya benzetir. Günler, haftalar veya aylar sonra commit mesajlarınızı okuduğunuzda neden bir karar verdiğinizi hatırlayabilir veya bir değişikliği "geri alabilirsiniz" - tabii ki iyi "commit mesajları" yazdığınızda.
Görev: Bir depo oluşturun ve kodu commit edin
Videoyu izleyin
-
GitHub'da bir depo oluşturun. GitHub.com'da, depolar sekmesinde veya sağ üstteki gezinme çubuğundan yeni depo düğmesini bulun.
- Depoya (klasöre) bir ad verin.
- Depo oluştur seçeneğini seçin.
-
Çalışma klasörünüze gidin. Terminalinizde, takip etmek istediğiniz klasöre (dizin olarak da bilinir) geçin. Şu komutu yazın:
cd [name of your folder] -
Bir git deposu başlatın. Projenizde şu komutu yazın:
git init -
Durumu kontrol edin. Depo durumunu kontrol etmek için şu komutu yazın:
git statusÇıktı şu şekilde görünebilir:
Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: file.txt modified: file2.txtGenellikle
git statuskomutu, repo için kaydedilmeye hazır olan dosyalar veya üzerinde değişiklik yapılmış ve kalıcı hale getirilmesi gereken dosyalar gibi bilgileri verir. -
Tüm dosyaları takibe ekleyin Bu işlem, dosyaları sahneleme alanına eklemek olarak da adlandırılır.
git add .git addve.argümanı, tüm dosyalarınızı ve değişikliklerinizi takibe ekler. -
Seçili dosyaları takibe ekleyin
git add [file or folder name]Bu komut, tüm dosyaları bir kerede commit etmek istemediğinizde yalnızca seçili dosyaları sahneleme alanına eklemenize yardımcı olur.
-
Tüm dosyaları sahneleme alanından çıkarın
git resetBu komut, tüm dosyaları bir kerede sahneleme alanından çıkarmanıza yardımcı olur.
-
Belirli bir dosyayı sahneleme alanından çıkarın
git reset [file or folder name]Bu komut, yalnızca bir dosyayı sahneleme alanından çıkarmanıza yardımcı olur.
-
Çalışmanızı kalıcı hale getirin. Bu noktada dosyaları sahneleme alanına eklediniz. Git dosyalarınızı burada takip ediyor. Değişikliği kalıcı hale getirmek için dosyaları commit etmeniz gerekiyor. Bunu yapmak için
git commitkomutunu kullanarak bir commit oluşturun. Bir commit, depo geçmişinizde bir kayıt noktasıdır. Şu komutu yazarak bir commit oluşturun:git commit -m "first commit"Bu, tüm dosyalarınızı "ilk commit" mesajıyla commit eder. Gelecekteki commit mesajlarınızda, yaptığınız değişiklik türünü açıklamak için daha açıklayıcı bir açıklama kullanmak isteyeceksiniz.
-
Yerel Git deponuzu GitHub ile bağlayın. Bir Git deposu makinenizde iyidir, ancak bir noktada dosyalarınızın bir yedeğini bir yerde tutmak ve ayrıca başkalarını deponuzda sizinle çalışmaya davet etmek isteyeceksiniz. Bunun için harika bir yer GitHub'dır. Daha önce GitHub'da bir depo oluşturduğumuzu hatırlayın, bu yüzden yapmamız gereken tek şey yerel Git depomuzu GitHub ile bağlamaktır.
git remote addkomutu bunu yapacaktır. Şu komutu yazın:Not: Komutu yazmadan önce GitHub depo sayfanıza giderek depo URL'sini bulun. Aşağıdaki komutta bu URL'yi kullanacaksınız.
https://github.com/kullanıcı_adı/depo_adı.gitkısmını GitHub URL'nizle değiştirin.git remote add origin https://github.com/username/repository_name.gitBu, daha önce oluşturduğunuz GitHub deposuna işaret eden "origin" adlı bir uzaktan bağlantı oluşturur.
-
Yerel dosyaları GitHub'a gönderin. Şimdiye kadar yerel depo ile GitHub deposu arasında bir bağlantı oluşturduk. Bu dosyaları GitHub'a göndermek için
git pushkomutunu şu şekilde kullanın:Not: Varsayılan dal adınız
mainden farklı olabilir.git push -u origin mainBu, "main" dalınızdaki commit'lerinizi GitHub'a gönderir. Komutta
-uile birlikteupstreamdalını ayarlamak, yerel dalınız ile uzak dal arasında bir bağlantı kurar, böylece gelecekte dal adını belirtmeden git push veya git pull komutlarını kullanabilirsiniz. Git, otomatik olarak upstream dalını kullanır ve gelecekteki komutlarda dal adını açıkça belirtmeniz gerekmez. -
Daha fazla değişiklik eklemek. Değişiklik yapmaya ve bunları GitHub'a göndermeye devam etmek istiyorsanız, sadece şu üç komutu kullanmanız yeterli olacaktır:
git add . git commit -m "type your commit message here" git pushİpucu:
.gitignoredosyasını benimsemek isteyebilirsiniz. Bu dosya, GitHub'da takip etmek istemediğiniz dosyaların görünmesini engeller - örneğin, aynı klasörde sakladığınız ancak halka açık bir depoda yeri olmayan notlar dosyası..gitignoredosyaları için şablonları .gitignore şablonları adresinde bulabilirsiniz.
Commit Mesajları
Harika bir Git commit başlık satırı şu cümleyi tamamlar: Eğer uygulanırsa, bu commit <buraya başlık satırınızı yazın> yapacaktır.
Başlıkta emir kipini ve şimdiki zamanı kullanın: "değiştir" değil "değiştirildi" veya "değişiklikler".
Başlıkta olduğu gibi, gövdede (isteğe bağlı) de emir kipini ve şimdiki zamanı kullanın. Gövde, değişikliğin motivasyonunu ve bunu önceki davranışla karşılaştırmayı içermelidir. nedeni açıklıyorsunuz, nasılı değil.
✅ GitHub'da biraz gezinin. Harika bir commit mesajı bulabilir misiniz? Çok minimal bir tane bulabilir misiniz? Sizce commit mesajında iletilmesi gereken en önemli ve faydalı bilgi nedir?
Görev: İşbirliği Yapın
GitHub'a bir şeyler koymanın ana nedeni, diğer geliştiricilerle işbirliği yapmayı mümkün kılmaktır.
Başkalarıyla Projeler Üzerinde Çalışmak
Videoyu izleyin
Depo içinde, Insights > Community bölümüne giderek projenizin önerilen topluluk standartlarına nasıl uyduğunu görebilirsiniz.
GitHub deponuzu geliştirebilecek bazı şeyler şunlardır:
- Açıklama. Projeniz için bir açıklama eklediniz mi?
- README. Bir README eklediniz mi? GitHub, README yazma konusunda rehberlik sağlar.
- Katkı yönergeleri. Projenizde katkı yönergeleri var mı?
- Davranış Kuralları. Bir Davranış Kuralları var mı?
- Lisans. Belki de en önemlisi, bir lisans var mı?
Tüm bu kaynaklar, yeni ekip üyelerinin projeye dahil olmasına fayda sağlar. Ve bunlar genellikle yeni katkıda bulunanların kodunuza bakmadan önce projenizin zamanlarını harcamaları için doğru yer olup olmadığını anlamak için baktıkları şeylerdir.
✅ README dosyaları, hazırlanması zaman almasına rağmen, genellikle meşgul bakımcılar tarafından ihmal edilir. Özellikle açıklayıcı bir README örneği bulabilir misiniz? Not: README oluşturmak için araçlar var, bunları denemek isteyebilirsiniz.
Görev: Kod Birleştirin
Katkı belgeleri, insanların projeye katkıda bulunmasına yardımcı olur. Hangi tür katkılar aradığınızı ve sürecin nasıl işlediğini açıklar. Katkıda bulunanlar, GitHub'daki deponuza katkıda bulunabilmek için bir dizi adımı takip etmek zorunda kalacaklar:
- Depoyu çatallama. İnsanların projenizi çatallamasını isteyeceksiniz. Çatallama, deponuzun GitHub profillerinde bir kopyasını oluşturmak anlamına gelir.
- Klonlama. Buradan projeyi yerel makinesine klonlayacaklar.
- Dal oluşturma. Çalışmaları için bir dal oluşturmalarını isteyeceksiniz.
- Değişikliklerini bir alana odaklama. Katkıda bulunanlardan katkılarını bir seferde bir şeye odaklamalarını isteyin - böylece çalışmalarını birleştirme olasılığınız daha yüksek olur. Diyelim ki bir hata düzeltmesi yazıyorlar, yeni bir özellik ekliyorlar ve birkaç testi güncelliyorlar - ya 3 değişiklikten sadece 2'sini veya 1'ini uygulamak istiyorsanız?
✅ Dalların iyi kod yazmak ve göndermek için özellikle kritik olduğu bir durumu hayal edin. Hangi kullanım durumlarını düşünebilirsiniz?
Not: Dünyada görmek istediğiniz değişim olun ve kendi çalışmalarınız için de dallar oluşturun. Yaptığınız commit'ler, şu anda "checkout" yaptığınız dalda yapılacaktır. Hangi dalda olduğunuzu görmek için
git statuskullanın.
Bir katkıda bulunanın iş akışını inceleyelim. Katkıda bulunanın zaten depoyu çatalladığı ve klonladığı ve yerel makinesinde çalışmaya hazır bir Git deposuna sahip olduğunu varsayalım:
-
Dal oluşturma.
git branchkomutunu kullanarak katkıda bulunmayı düşündükleri değişiklikleri içerecek bir dal oluşturun:git branch [branch-name] -
Çalışma dalına geçiş yapma. Belirtilen dala geçin ve çalışma dizinini
git switchile güncelleyin:git switch [branch-name] -
Çalışma yapma. Bu noktada değişikliklerinizi eklemek istiyorsunuz. Git'e bunu şu komutlarla bildirmeyi unutmayın:
git add . git commit -m "my changes"Commit'inize iyi bir ad verdiğinizden emin olun, hem sizin hem de yardım ettiğiniz depo bakımcısı için.
-
Çalışmanızı
maindalıyla birleştirme. Bir noktada çalışmanızı tamamladınız ve bunumaindalıyla birleştirmek istiyorsunuz. Bu aradamaindalı değişmiş olabilir, bu yüzden önce aşağıdaki komutlarla en son haline güncellediğinizden emin olun:git switch main git pullBu noktada, herhangi bir çakışmanın, Git'in değişiklikleri kolayca birleştiremediği durumların çalışma dalınızda gerçekleştiğinden emin olun. Bu nedenle şu komutları çalıştırın:
git switch [branch_name] git merge maingit merge mainkomutu,maindalından tüm değişiklikleri dalınıza getirir. Umarız devam edebilirsiniz. Eğer edemezseniz, VS Code, Git'in kafasının karıştığı yerleri size gösterecek ve etkilenen dosyaları değiştirerek hangi içeriğin en doğru olduğunu belirteceksiniz.Farklı bir dala geçmek için modern
git switchkomutunu kullanın:git switch [branch_name] -
Çalışmanızı GitHub'a gönderin. Çalışmanızı GitHub'a göndermek iki şey anlamına gelir. Dalınızı deponuza itmek ve ardından bir PR (Pull Request) açmak.
git push --set-upstream origin [branch-name]Yukarıdaki komut, çatallanan deponuzda dalı oluşturur.
-
Bir PR Açın. Şimdi bir PR açmak istiyorsunuz. Bunu GitHub'daki çatalladığınız repo'ya giderek yapabilirsiniz. GitHub'da yeni bir PR oluşturmak isteyip istemediğinizi soran bir gösterge göreceksiniz, buna tıklayın ve sizi commit mesaj başlığını değiştirebileceğiniz, daha uygun bir açıklama ekleyebileceğiniz bir arayüze yönlendirecek. Çatalladığınız repo'nun sahibi bu PR'ı görecek ve parmaklar çapraz umarız PR'ınızı beğenip birleştirecek. Artık bir katkıcı oldunuz, yaşasın :)
-
Temizlik Yapın. Bir PR'ı başarıyla birleştirdikten sonra temizlik yapmak iyi bir uygulama olarak kabul edilir. Hem yerel dalınızı hem de GitHub'a gönderdiğiniz dalı temizlemek istersiniz. Önce aşağıdaki komutla yerel olarak silelim:
git branch -d [branch-name]Ardından GitHub'daki çatalladığınız repo sayfasına gidin ve az önce gönderdiğiniz uzak dalı kaldırın.
Pull request (Çekme isteği) biraz garip bir terim gibi görünüyor çünkü aslında değişikliklerinizi projeye göndermek istiyorsunuz. Ancak repo sahibi (proje sahibi) veya çekirdek ekip, değişikliklerinizi projedeki "ana" dal ile birleştirmeden önce değerlendirmelidir, bu yüzden aslında bir değişiklik kararı talep ediyorsunuz.
Bir çekme isteği, bir dalda yapılan değişiklikleri incelemek ve tartışmak için yorumlar, entegre testler ve daha fazlasıyla bir yerdir. İyi bir çekme isteği, yaklaşık olarak bir commit mesajı ile aynı kuralları takip eder. Örneğin, çalışmanız bir sorunu çözdüğünde, sorun izleyicisine bir referans ekleyebilirsiniz. Bu, # işareti ve ardından sorun numarası kullanılarak yapılır. Örneğin #97.
🤞Parmaklar çapraz, umarız tüm kontroller geçer ve proje sahibi(leri) değişikliklerinizi projeye birleştirir🤞
GitHub'daki ilgili uzak dalda yapılan tüm yeni commit'lerle mevcut yerel çalışma dalınızı güncelleyin:
git pull
Açık Kaynağa Nasıl Katkıda Bulunulur
Öncelikle, GitHub'da ilginizi çeken ve değişiklik yapmak istediğiniz bir depo (repo) bulalım. İçeriğini bilgisayarınıza kopyalamak isteyeceksiniz.
✅ 'Yeni başlayanlar için uygun' repoları bulmanın iyi bir yolu ‘good-first-issue’ etiketiyle arama yapmaktır.
Kod kopyalamanın birkaç yolu vardır. Bir yol, HTTPS, SSH veya GitHub CLI (Komut Satırı Arayüzü) kullanarak repoyu "klonlamaktır".
Terminalinizi açın ve repoyu şu şekilde klonlayın:
git clone https://github.com/ProjectURL
Projede çalışmak için doğru klasöre geçin:
cd ProjectURL
Ayrıca projeyi Codespaces, GitHub'ın entegre kod editörü / bulut geliştirme ortamı veya GitHub Desktop kullanarak açabilirsiniz.
Son olarak, kodu sıkıştırılmış bir klasör olarak indirebilirsiniz.
GitHub Hakkında Birkaç İlginç Bilgi
GitHub'daki herhangi bir açık repo'yu yıldızlayabilir, izleyebilir ve/veya "çatallayabilirsiniz". Yıldızladığınız repoları sağ üst açılır menüde bulabilirsiniz. Bu, kod için bir tür yer imi gibidir.
Projelerde genellikle GitHub'daki "Issues" sekmesinde (aksi belirtilmedikçe) bir sorun izleyici bulunur, burada insanlar projeyle ilgili sorunları tartışır. Ve Çekme İstekleri sekmesi, devam eden değişikliklerin tartışıldığı ve incelendiği yerdir.
Projelerde ayrıca forumlarda, e-posta listelerinde veya Slack, Discord veya IRC gibi sohbet kanallarında tartışmalar olabilir.
✅ Yeni GitHub repo'nuzda biraz dolaşın ve ayarları düzenlemek, repoya bilgi eklemek ve bir proje (örneğin bir Kanban panosu) oluşturmak gibi birkaç şey deneyin. Yapabileceğiniz çok şey var!
🚀 Meydan Okuma
Bir arkadaşınızla eşleşerek birbirinizin kodu üzerinde çalışın. Ortak bir proje oluşturun, kodu çatallayın, dallar oluşturun ve değişiklikleri birleştirin.
Ders Sonrası Test
Gözden Geçirme ve Kendi Kendine Çalışma
Açık kaynak yazılıma katkıda bulunma hakkında daha fazla okuyun.
Pratik yapın, pratik yapın, pratik yapın. GitHub'da skills.github.com üzerinden harika öğrenme yolları mevcuttur:
Ayrıca daha ileri düzey kurslar da bulabilirsiniz.
Ödev
GitHub'da İlk Hafta kursunu tamamlayın.
Feragatname:
Bu belge, AI çeviri hizmeti Co-op Translator kullanılarak çevrilmiştir. Doğruluğu sağlamak için çaba göstersek de, otomatik çevirilerin hata veya yanlışlık içerebileceğini lütfen unutmayın. Belgenin orijinal dili, yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımından kaynaklanan yanlış anlamalar veya yanlış yorumlamalar için sorumluluk kabul edilmemektedir.



