Rehberler

GitHub Nedir? Geliştirici Olmayanlar İçin Sürüm Kontrolü

GitHub, yazılım projelerinin kodunu tam geçmişiyle birlikte saklayan bir web sitesidir. Böylece her değişikliği görebilir, hataları geri alabilir ve aynı projede başka insanlarla çalışabilirsiniz. Git üzerine kuruludur; Git, bir projenin dosyalarının zaman içindeki anlık görüntülerini kaydeden ücretsiz bir yazılımdır. Geçmişi tutan araç Git’tir; GitHub ise bu geçmişin çevrim içinde paylaşıldığı, yedeklendiği ve tartışıldığı yerdir.

Yapay zekâyla yapı kuruyorsanız GitHub’ın işe yaradığı iki temel konu vardır: kodunuzun bir kopyasına, onu oluşturduğunuz aracın dışında sahip olmak ve kodu bir geliştiriciye, onun zaten çalıştığı biçimde teslim etmek.

Yapay zekâyla yapı kurarken neden önemli?

Bir yapay zekâ uygulama oluşturucu çok hızlı kod yazar ve değiştirir; ama her değişiklik bir iyileştirme olmaz. Sürüm kontrolü bunu güvenli hale getirir.

  • Özgüvenle geri alın. Kaydedilen her değişiklik bir anlık görüntüdür. Yapay zekâ bir şeyi bozarsa son iyi sürüme dönersiniz.
  • Sahiplik. Kendi GitHub hesabınızdaki kod, araç değiştirseniz, bir aracın ücretini ödemeyi bıraksanız ya da ikinci bir görüş isteseniz de sizin kalır.
  • Geliştiricilerle çalışmak. Neredeyse her geliştirici Git’i her gün kullanır. Bir depo, onların yapay zekânın yazdıklarını incelemesine, düzeltmesine ve değişiklikleri geri göndermesine olanak tanır.
  • Başka yerde yayımlamak. Birçok barındırma platformu doğrudan bir GitHub deposundan yayımlayabilir.

Günlük bir benzetme: izleme değişiklikleri ve paylaşımlı sürücü

Değişiklikleri izleme özelliği açık olan ve paylaşımlı bir sürücüde duran bir belge düşünün.

  • Git, izleme değişiklikleri gibidir: her düzenleme, kimin, ne zaman ve neden yaptığıyla birlikte kaydedilir ve istediğiniz sürüme dönebilirsiniz.
  • GitHub paylaşımlı sürücüdür: belge çevrim içinde durur, başkaları bir kopya alabilir ve yorum yapıp onaylayabileceğiniz bir yer vardır.
  • Bir dal (branch), herkesin güvendiği sürümü etkilemeden denemeler yapabilmeniz için “taslak — yeni fiyatlandırma bölümü” adıyla kaydedilmiş bir kopya gibidir. Deneme işe yararsa onu ana sürüme geri birleştirirsiniz.

Bir belgeden farkı ölçektir. Bir uygulama yüzlerce dosyadır ve Git hepsini birlikte izler; dolayısıyla bir anlık görüntü, projenin o andaki tüm durumunu temsil eder.

Karşılaşacağınız Git ve GitHub terimleri

TerimSade anlamı
Repository (repo)Tam geçmişiyle birlikte bir proje klasörü
CommitKısa bir mesajla açıklanmış, kaydedilmiş değişiklik anlık görüntüsü
Branch (dal)Ayrı bir çalışma hattı; denemeler ana sürümü bozmaz
mainBirincil dalın genel adı; canlıya giden sürüm
Merge (birleştirme)Bir dalın değişikliklerini başka bir dala aktarmak
Merge conflict (birleştirme çakışması)İki değişiklik aynı satırlara dokundu; birinin hangisini tutacağını seçmesi gerekir
Clone (kopyalama)Geçmişiyle birlikte bir deponun tam kopyasını indirmek
Push / pullCommit’lerinizi GitHub’a göndermek / başkalarınınkini indirmek
Pull request (PR)Bir dalı birleştirme önerisi; insanların değişiklikleri inceleyip tartıştığı bir GitHub sayfası
ForkBirinin GitHub’daki deposunun kendi hesabınızdaki kopyası
IssueDepoya bağlı bir GitHub yapılacaklar listesi veya hata bildirimi
.gitignoreGit’in asla kaydetmemesi gereken dosyaların listesi; örneğin .env gizli bilgileri ve indirilen bağımlılıklar
GitHub ActionsGitHub üzerinde çalışan otomasyon; örneğin her pull request’te testler

İki noktanın altını çizmek gerekir. Birincisi, Git geçmişi tasarım gereği kalıcıdır: bir parola commit edilip gönderilirse, sonraki bir commit’te silmek onu geçmişten kaldırmaz. İkincisi, bir commit’in değeri yalnızca mesajı kadardır. “Aynı anda iki kişi rezervasyon yaptığında çift sayımı düzelt” mesajı sonra işinize yarar; “güncelle” yaramaz.

Çalışılmış bir örnek: yapay zekâyla yapılmış bir uygulamayı serbest geliştiriciye teslim etmek

Bir yapay zekâ uygulama oluşturucuyla bir müşteri portalı yaptınız. Çalışıyor, ama muhasebe yazılımınızla zorlu bir entegrasyon eklemek için serbest çalışan bir geliştiriciye ihtiyacınız var.

  1. Projeyi yeni bir özel GitHub deposuna bağlayın ve gönderin. Depo artık kodu ve geçmişini tutar.
  2. İçeriği kontrol edin. Depoyu GitHub’da açın. Hiçbir .env dosyası ve kodda hiçbir API anahtarı olmamalı. Gizli bilgiler platformunuzun ayarlarında kalır ve gerekirse geliştiriciyle ayrıca paylaşılır; bkz. ortam değişkenleri ve gizli bilgiler.
  3. Serbest geliştiriciyi yalnızca o depoya ortak olarak davet edin.
  4. Geliştirici accounting-sync gibi bir dalda çalışır, ilerledikçe commit’ler yapar ve bitince bir pull request açar.
  5. Pull request’i siz incelersiniz. Kodu okumasanız bile açıklamayı okuyabilir, hangi dosyaların değiştiğini kontrol edebilir ve yorumlarda soru sorabilirsiniz.
  6. Memnun kalınca birleştirin (merge), ardından yapay zekâyla devam edebilmeniz için değişiklikleri uygulama oluşturucunuza çekin (pull).

Bu süreçte neyin değiştiğini tam olarak görebilir ve gerekirse geri alabilirsiniz. Sürüm kontrolünün tüm değeri bu iş akışında özetlenir. Bir geliştirici getirmeyi düşünüyorsanız, bkz. geliştirici tutmak mı, yapay zekâyla yapmak mı.

Sık yapılan hatalar ve yanlış anlamalar

  • “GitHub ile Git aynı şey.” Git, GitHub olmadan da çalışır; GitLab ve Bitbucket gibi alternatifler de Git depolarını barındırır.
  • “GitHub uygulamamı çalıştırır.” GitHub kodu saklar. Uygulamayı herkese çalıştırmak ayrı bir hizmet olan web barındırmadır; bazı barındırma servisleri yine de GitHub’dan yayımlayabilir.
  • Gizli bilgileri commit etmek. En zararlı ve en yaygın hata budur. .env dosyaları için .gitignore kullanın ve bir kez gönderilmiş her anahtarı yenileyin.
  • Tek dal ve mesajsız commit’ler. Tek kişilik denemeler için yeterlidir, ama commit’lere açık mesajlar verin ve riskli her iş için dal kullanın.
  • Aynı anda iki yerde düzenlemek. Kodu hem GitHub’da hem yapay zekâ oluşturucunuzda, arada çekmeden değiştirirseniz çakışmalar oluşur. Aynı anda tek bir yerde düzenleyin ve geçiş yapmadan önce eşitleyin.
  • Özel bir deponun her şeyin yedeği olduğunu sanmak. Depo kodu tutar; veritabanı içeriğini ya da yüklenen dosyaları tutmaz. Bunların kendi yedekleri gerekir.

Yapay zekâ oluşturucunuzdan ne isteyin

  • “Şunları dışarıda bırakan bir .gitignore ekle: .env, bağımlılık klasörleri ve derleme çıktısı.”
  • “Kurulumun nasıl yapılacağını, gereken ortam değişkenlerini (yalnızca adlarını) ve uygulamanın nasıl çalıştırılacağını anlatan bir README yaz.”
  • “Her değişkenin adını, gerçek değer olmadan içeren bir .env.example ekle.”
  • “Her değişiklik için açıklayıcı, net commit mesajları kullan.”

Bu dört istek, bir geliştiricinin dakikalar içinde devralabileceği bir depo oluşturur. Uygulamayı kendi sunucularınıza taşımak için bkz. yapay zekâyla yapılmış uygulamayı dışa aktarma ve kendi sunucunuzda barındırma; gerçek kullanıcılar öncesinde sertleştirmek için bkz. yapay zekâ prototipini üretime taşımak.

GitHub ve Mythex

Mythex her planda geçmişi sizin için tutar: ajan her başarılı turdan sonra, dönebileceğiniz bir Git anlık görüntüsü olan bir checkpoint kaydeder. Pro planda GitHub’ı bağlayıp projeyi kendi deponuzla gönderip çekebilir ya da tüm projeyi bir arşiv olarak indirebilirsiniz; dışa aktarımlarda gizli bilgiler ve kurulu bağımlılıklar hariç tutulur. Buradaki GitHub, kod eşitlemesi içindir; Mythex’e giriş yapmak için kullanılmaz. Ayrıntılar için dokümanlardaki GitHub, dışa aktarma ve içe aktarma sayfasına, planların neler içerdiği için de fiyatlandırma sayfasına bakın.

Sorular

Git ile GitHub arasındaki fark nedir?

Git, bir projenin dosyalarının geçmişini herhangi bir bilgisayarda kaydeden ücretsiz bir yazılımdır. GitHub ise Git depolarını çevrim içi barındıran ve pull request, issue ve otomasyon gibi işbirliği araçları ekleyen, Microsoft’a ait bir web sitesidir.

Yapay zekâyla uygulama yapmak için GitHub’a ihtiyacım var mı?

Hayır. Birçok yapay zekâ uygulama oluşturucu geçmişi ürünün içinde sizin için tutar. GitHub, kodun kendi kopyanızı istediğinizde, bir geliştiriciyle çalışmak istediğinizde ya da uygulamayı başka bir yerde barındırmayı planladığınızda işe yarar.

GitHub ücretsiz mi?

GitHub, genel ve özel depoları içeren ücretsiz bir plana sahiptir; bu, çoğu birey ve küçük ekip için yeterlidir. Ücretli planlar ekip yönetimi ve ek özellikler sunar. Güncel ayrıntılar için GitHub’ın fiyatlandırma sayfasına bakın.

Kodum GitHub’da herkese açık mı?

Yalnızca depoyu herkese açık yaparsanız. Özel depoları yalnızca siz ve davet ettiğiniz kişiler görebilir. Özel bir depoda bile parolaları ya da API anahtarlarını asla commit etmeyin.

Mythex · Pricing · Yapay zekayla her şeyi yapın · Web sitesi ve uygulama şablonları · Mythex karşılaştırmaları · Yapay zekayla uygulama geliştirme sözlüğü · Yapay zekayla uygulama geliştirme için ücretsiz araçlar · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)