{"id":34399,"date":"2025-11-16T06:00:59","date_gmt":"2025-11-16T03:00:59","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/"},"modified":"2025-11-16T06:00:59","modified_gmt":"2025-11-16T03:00:59","slug":"git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/","title":{"rendered":"Git Deposu \u00c7atallama: A\u00e7\u0131k Kaynak Projelerine Katk\u0131n\u0131n Anahtar\u0131"},"content":{"rendered":"<p><body><\/p>\n<p>Git deposu \u00e7atallama (forking) nedir, neden \u00f6nemlidir ve a\u00e7\u0131k kaynak projelerine nas\u0131l katk\u0131da bulunman\u0131z\u0131 sa\u011flar? Bu kapsaml\u0131 rehberde ad\u0131m ad\u0131m \u00f6\u011frenin ve geli\u015ftirme s\u00fcre\u00e7lerinizi optimize edin.<\/p>\n<p>Hi\u00e7 b\u00fcy\u00fck bir a\u00e7\u0131k kaynak projesine katk\u0131da bulunmay\u0131, orada g\u00f6rd\u00fc\u011f\u00fcn\u00fcz bir hatay\u0131 d\u00fczeltmeyi veya yeni bir \u00f6zellik eklemeyi hayal ettiniz mi? Belki de kendi ki\u015fisel projeniz i\u00e7in mevcut bir kodu temel alarak ilerlemek istiyorsunuz. Ancak bu senaryolar\u0131n her birinde, projenin orijinal kod taban\u0131na do\u011frudan eri\u015fiminiz veya \u00fczerinde de\u011fi\u015fiklik yapma izniniz olmayabilir. \u0130\u015fte tam da bu noktada, Git d\u00fcnyas\u0131n\u0131n en g\u00fc\u00e7l\u00fc ve en \u00e7ok kullan\u0131lan mekanizmalar\u0131ndan biri olan &#8220;depo \u00e7atallama&#8221; (forking) devreye girer. Peki, bu kavram tam olarak ne anlama geliyor ve geli\u015ftiriciler i\u00e7in neden bu kadar kritik bir \u00f6neme sahip?<\/p>\n<p>Depo \u00e7atallama, temel olarak, mevcut bir Git deposunun kendi uzak hesab\u0131n\u0131zda (\u00f6rne\u011fin GitHub, GitLab veya Bitbucket gibi platformlarda) tamamen ba\u011f\u0131ms\u0131z bir kopyas\u0131n\u0131 olu\u015fturma i\u015flemidir. Bunu, bir kitab\u0131n tamam\u0131n\u0131 al\u0131p kendi ki\u015fisel k\u00fct\u00fcphanenize koymak ve \u00fczerinde diledi\u011finiz notlar\u0131 almak, sayfalar\u0131n\u0131 i\u015faretlemek veya hatta baz\u0131 b\u00f6l\u00fcmlerini yeniden yazmak gibi d\u00fc\u015f\u00fcnebilirsiniz. Orijinal kitap bundan etkilenmez, ancak sizin kendi kopyan\u0131z \u00fczerinde tam kontrol\u00fcn\u00fcz olur. Bu sayede, ana projenin geli\u015ftiricileri taraf\u0131ndan verilen yazma izinlerine sahip olmasan\u0131z bile, kodu g\u00fcvenle de\u011fi\u015ftirebilir, deneyler yapabilir ve kendi geli\u015ftirmelerinizi ger\u00e7ekle\u015ftirebilirsiniz. Bu ba\u011f\u0131ms\u0131zl\u0131k, \u00f6zellikle a\u00e7\u0131k kaynak projelerine katk\u0131da bulunurken veya orijinal projeyi etkilemeden kendi versiyonunuzu olu\u015fturmak istedi\u011finizde paha bi\u00e7ilmez bir avantaj sunar. B\u00f6ylece, hem \u00f6\u011frenme s\u00fcrecinizi h\u0131zland\u0131r\u0131r hem de mevcut projelere de\u011fer katma f\u0131rsat\u0131 bulursunuz.<\/p>\n<p>Bir depoyu \u00e7atallamak, sadece de\u011fi\u015fiklik yapmakla kalmaz, ayn\u0131 zamanda orijinal proje ile s\u00fcrekli bir ba\u011flant\u0131 kurman\u0131z\u0131 da sa\u011flar. Kendi \u00e7atallanm\u0131\u015f deponuzda yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fiklikleri, daha sonra bir &#8220;\u00e7ekme iste\u011fi&#8221; (pull request) arac\u0131l\u0131\u011f\u0131yla orijinal depoya geri g\u00f6nderebilirsiniz. Bu s\u00fcre\u00e7, sizin katk\u0131lar\u0131n\u0131z\u0131n orijinal projeye dahil edilmesini talep etmenizi sa\u011flar. Proje y\u00f6neticileri veya bak\u0131mc\u0131lar\u0131, \u00f6nerdi\u011finiz de\u011fi\u015fiklikleri inceleyebilir, geri bildirimde bulunabilir ve uygun g\u00f6r\u00fcrlerse bunlar\u0131 ana projeye entegre edebilirler. Bu i\u015fbirli\u011fi modeli, d\u00fcnya \u00e7ap\u0131ndaki yaz\u0131l\u0131m geli\u015ftirmenin temel ta\u015flar\u0131ndan biridir ve Git&#8217;in \u00e7atallama mekanizmas\u0131 sayesinde sorunsuz bir \u015fekilde i\u015fler. K\u0131sacas\u0131, \u00e7atallama, hem ki\u015fisel geli\u015fiminiz hem de a\u00e7\u0131k kaynak toplulu\u011funa katk\u0131lar\u0131n\u0131z i\u00e7in vazge\u00e7ilmez bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r.<\/p>\n<h2>Git Deposu \u00c7atallama Nedir ve Neden \u00d6nemlidir? Temel Kavramlar ve Kullan\u0131m Senaryolar\u0131<\/h2>\n<p>Git deposu \u00e7atallama (forking), ad\u0131ndan da anla\u015f\u0131laca\u011f\u0131 gibi, mevcut bir Git deposunun kendi kullan\u0131c\u0131 hesab\u0131n\u0131z alt\u0131nda yeni ve ba\u011f\u0131ms\u0131z bir kopyas\u0131n\u0131 olu\u015fturma eylemidir. Bu i\u015flem, genellikle GitHub gibi platformlar \u00fczerinde &#8220;Fork&#8221; butonuna tek bir t\u0131klamayla ger\u00e7ekle\u015ftirilir ve orijinal deponun t\u00fcm commit ge\u00e7mi\u015fi, dallar\u0131 ve dosyalar\u0131 sizin yeni deponuza kopyalan\u0131r. Ancak, bu yeni deponun orijinaliyle olan ili\u015fkisi, yaln\u0131zca ba\u015flang\u0131\u00e7taki bir kopyalama i\u015fleminden ibaret de\u011fildir; iki depo aras\u0131nda belirli bir &#8220;soy a\u011fac\u0131&#8221; ili\u015fkisi devam eder. Bu ili\u015fki, orijinal depodaki g\u00fcncellemeleri kendi \u00e7atallanm\u0131\u015f deponuza kolayca entegre etmenize olanak tan\u0131r, ki bu da s\u00fcrd\u00fcr\u00fclebilir bir geli\u015ftirme i\u015f ak\u0131\u015f\u0131 i\u00e7in hayati \u00f6neme sahiptir. Dolay\u0131s\u0131yla, \u00e7atallama sadece bir kopyalama i\u015flemi de\u011fil, ayn\u0131 zamanda orijinal projeyle etkile\u015fim kurman\u0131n ve ona katk\u0131da bulunman\u0131n bir yoludur.<\/p>\n<p>Peki, bir depoyu neden \u00e7atallaman\u0131z gerekir? Bu sorunun cevab\u0131, \u00e7e\u015fitli kullan\u0131m senaryolar\u0131nda yatmaktad\u0131r:<\/p>\n<ul>\n<li><strong>A\u00e7\u0131k Kaynak Projelerine Katk\u0131da Bulunma:<\/strong> Bu, \u00e7atallaman\u0131n en yayg\u0131n kullan\u0131m amac\u0131d\u0131r. \u00c7o\u011fu a\u00e7\u0131k kaynak projesinde, do\u011frudan ana depoya yazma izniniz yoktur. Projeye katk\u0131da bulunmak istedi\u011finizde, depoyu kendi hesab\u0131n\u0131za \u00e7atallars\u0131n\u0131z, bu \u00e7atallanm\u0131\u015f kopyada de\u011fi\u015fikliklerinizi yapar ve ard\u0131ndan orijinal depoya bir &#8220;pull request&#8221; (\u00e7ekme iste\u011fi) g\u00f6ndererek de\u011fi\u015fikliklerinizin ana projeye dahil edilmesini talep edersiniz. Bu, ana projenin b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc korurken d\u0131\u015far\u0131dan gelen katk\u0131lar\u0131n g\u00fcvenli bir \u015fekilde entegre edilmesini sa\u011flar.<\/li>\n<li><strong>G\u00fcvenli Deneme ve Geli\u015ftirme Ortam\u0131:<\/strong> Kendi projenizde veya ba\u015fkas\u0131n\u0131n projesinde yeni bir \u00f6zellik denemek, bir hatay\u0131 gidermek veya b\u00fcy\u00fck bir refactoring yapmak istedi\u011finizde, ana projeyi riske atmadan bu de\u011fi\u015fiklikleri g\u00fcvenle yapabilece\u011finiz bir ortama ihtiya\u00e7 duyars\u0131n\u0131z. \u00c7atallanm\u0131\u015f depo, size bu \u00f6zg\u00fcrl\u00fc\u011f\u00fc sunar. Yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fiklikler ana projeyi etkilemez ve istedi\u011finiz kadar deneysel \u00e7al\u0131\u015fma yapabilirsiniz.<\/li>\n<li><strong>Kendi Versiyonunuzu Olu\u015fturma:<\/strong> Bazen bir projenin tam olarak ihtiya\u00e7lar\u0131n\u0131za uymad\u0131\u011f\u0131n\u0131 fark edersiniz ve onu kendi kullan\u0131m\u0131n\u0131z i\u00e7in \u00f6zelle\u015ftirmek isteyebilirsiniz. Depoyu \u00e7atallayarak, kendi ki\u015fisel versiyonunuzu olu\u015fturabilir ve orijinal projenin geli\u015fmesinden ba\u011f\u0131ms\u0131z olarak onu istedi\u011finiz y\u00f6nde geli\u015ftirebilirsiniz. Bu, \u00f6zellikle bir k\u00fct\u00fcphaneyi veya arac\u0131 kendi \u00f6zel gereksinimlerinize g\u00f6re uyarlaman\u0131z gerekti\u011finde kullan\u0131\u015fl\u0131d\u0131r.<\/li>\n<li><strong>E\u011fitim ve \u00d6\u011frenme:<\/strong> Git ve versiyon kontrol sistemleri hakk\u0131nda bilgi edinmek isteyen yeni ba\u015flayanlar i\u00e7in, bir depoyu \u00e7atallamak ve \u00fczerinde pratik yapmak harika bir \u00f6\u011frenme arac\u0131d\u0131r. Ba\u015fka birinin kodunu incelemek, onu de\u011fi\u015ftirmek ve kendi ba\u015f\u0131n\u0131za bir \u00e7ekme iste\u011fi olu\u015fturma s\u00fcrecini deneyimlemek, teorik bilgileri prati\u011fe d\u00f6kmenin en etkili yollar\u0131ndan biridir.<\/li>\n<\/ul>\n<p>Unutmay\u0131n ki \u00e7atallama ile &#8220;klonlama&#8221; (cloning) farkl\u0131 kavramlard\u0131r. Klonlama, bir deponun tamam\u0131n\u0131 yerel bilgisayar\u0131n\u0131za indirme i\u015flemidir. \u00c7atallama ise, depoyu uzak sunucuda (\u00f6rne\u011fin GitHub&#8217;da) kopyalaman\u0131z\u0131 sa\u011flar. Genellikle bir a\u00e7\u0131k kaynak projesine katk\u0131da bulunmak i\u00e7in \u00f6nce depoyu <strong>\u00e7atallar<\/strong>, sonra \u00e7atallad\u0131\u011f\u0131n\u0131z depoyu kendi yerel bilgisayar\u0131n\u0131za <strong>klonlars\u0131n\u0131z<\/strong>. Bu s\u00fcre\u00e7, geli\u015ftirme i\u015f ak\u0131\u015f\u0131n\u0131n temelini olu\u015fturur ve Git ekosistemindeki etkile\u015fimlerin b\u00fcy\u00fck bir k\u0131sm\u0131n\u0131 \u015fekillendirir.<\/p>\n<h3>Fork ile Clone Aras\u0131ndaki Temel Farklar Nelerdir?<\/h3>\n<p>Git d\u00fcnyas\u0131nda yeniyseniz, &#8216;fork&#8217; ve &#8216;clone&#8217; terimlerinin birbirine kar\u0131\u015ft\u0131r\u0131lmas\u0131 olduk\u00e7a yayg\u0131nd\u0131r. Ancak bu iki i\u015flem, geli\u015ftirme i\u015f ak\u0131\u015f\u0131n\u0131zda farkl\u0131 ama\u00e7lara hizmet eder. \u0130\u015fte basit bir kar\u015f\u0131la\u015ft\u0131rma tablosu:<\/p>\n<table>\n<thead>\n<tr>\n<th>\u00d6zellik<\/th>\n<th>Fork (\u00c7atallama)<\/th>\n<th>Clone (Klonlama)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Tan\u0131m<\/td>\n<td>Uzak bir sunucuda (\u00f6rn. GitHub) mevcut bir deponun tamam\u0131n\u0131n ki\u015fisel bir kopyas\u0131n\u0131 olu\u015fturma i\u015flemidir.<\/td>\n<td>Mevcut bir deponun (yerel veya uzak) yerel makinenize tam bir kopyas\u0131n\u0131 indirme i\u015flemidir.<\/td>\n<\/tr>\n<tr>\n<td>Ama\u00e7<\/td>\n<td>Orijinal depoya ba\u011f\u0131ml\u0131 olmadan kendi de\u011fi\u015fikliklerinizi yapmak, a\u00e7\u0131k kaynak projelerine katk\u0131da bulunmak, ki\u015fisel denemeler yapmak.<\/td>\n<td>Deponun tamam\u0131n\u0131 yerel ortamda \u00e7al\u0131\u015fmak, mevcut dallar\u0131 \u00e7ekmek, do\u011frudan ana depoya de\u011fi\u015fiklik g\u00f6ndermek.<\/td>\n<\/tr>\n<tr>\n<td>Konum<\/td>\n<td>Uzak depo sunucusunda (\u00f6rne\u011fin GitHub&#8217;da kendi hesab\u0131n\u0131z\u0131n alt\u0131nda).<\/td>\n<td>Yerel bilgisayar\u0131n\u0131zda bir dizin i\u00e7inde.<\/td>\n<\/tr>\n<tr>\n<td>\u0130zinler<\/td>\n<td>Orijinal deponun yazma iznine sahip olmasan\u0131z bile kendi \u00e7atallanm\u0131\u015f kopyan\u0131zda yazma iznine sahip olursunuz.<\/td>\n<td>Klonlad\u0131\u011f\u0131n\u0131z depoya (e\u011fer uzak bir depo ise) de\u011fi\u015fiklik g\u00f6ndermek i\u00e7in genellikle yazma iznine ihtiyac\u0131n\u0131z vard\u0131r.<\/td>\n<\/tr>\n<tr>\n<td>\u0130lk Ad\u0131m<\/td>\n<td>Genellikle a\u00e7\u0131k kaynak projelerine katk\u0131da bulunurken at\u0131lan ilk ad\u0131md\u0131r.<\/td>\n<td>\u00c7atallanm\u0131\u015f deponuzdan veya do\u011frudan eri\u015fiminiz olan bir depodan \u00e7al\u0131\u015fmaya ba\u015flamak i\u00e7in kullan\u0131l\u0131r.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Git Deposu Ba\u015far\u0131yla Nas\u0131l \u00c7atallan\u0131r? Ad\u0131m Ad\u0131m Uygulamal\u0131 Rehber<\/h2>\n<p>Art\u0131k \u00e7atallaman\u0131n ne oldu\u011funu ve neden \u00f6nemli oldu\u011funu biliyoruz. \u015eimdi ise prati\u011fe d\u00f6kme zaman\u0131! Bir Git deposunu ba\u015far\u0131yla \u00e7atallamak, \u00fczerinde de\u011fi\u015fiklikler yapmak ve bu de\u011fi\u015fiklikleri ana projeye geri g\u00f6ndermek i\u00e7in izlemeniz gereken ad\u0131mlar\u0131 detayl\u0131ca inceleyelim. Bu b\u00f6l\u00fcmde, a\u00e7\u0131k kaynak bir projeye katk\u0131da bulunmak isteyen bir geli\u015ftirici senaryosunu ele alarak konuyu somutla\u015ft\u0131raca\u011f\u0131z.<\/p>\n<h3>GitHub \u00dczerinden Bir Depoyu Fork Etme Ad\u0131mlar\u0131<\/h3>\n<p>Bir depoyu \u00e7atallamak, genellikle GitHub gibi platformlarda son derece basit bir i\u015flemdir. Diyelim ki, &#8220;AwesomeProject&#8221; ad\u0131nda bir a\u00e7\u0131k kaynak projesine katk\u0131da bulunmak istiyorsunuz:<\/p>\n<ol>\n<li><strong>Orijinal Depoyu Bulun:<\/strong> \u0130lk olarak, katk\u0131da bulunmak istedi\u011finiz projenin GitHub sayfas\u0131n\u0131 ziyaret edin. \u00d6rne\u011fin, <code>github.com\/orijinal-kullanici-adi\/AwesomeProject<\/code> adresine gidin.<\/li>\n<li><strong>&#8220;Fork&#8221; Butonuna T\u0131klay\u0131n:<\/strong> Sayfan\u0131n sa\u011f \u00fcst k\u00f6\u015fesinde, genellikle y\u0131ld\u0131z ve izleme (watch) butonlar\u0131n\u0131n yan\u0131nda bir &#8220;Fork&#8221; butonu g\u00f6receksiniz. Bu butona t\u0131klay\u0131n.<\/li>\n<li><strong>\u00c7atallama \u0130\u015flemini Onaylay\u0131n:<\/strong> GitHub, deponun sizin hesab\u0131n\u0131za \u00e7atallanaca\u011f\u0131n\u0131 belirten bir onay ekran\u0131 g\u00f6sterebilir. Bu i\u015flemi onaylad\u0131\u011f\u0131n\u0131zda, GitHub otomatik olarak projenin bir kopyas\u0131n\u0131 sizin kendi hesab\u0131n\u0131z\u0131n alt\u0131na (\u00f6rne\u011fin, <code>github.com\/sizin-kullanici-adiniz\/AwesomeProject<\/code>) olu\u015fturacakt\u0131r. Bu i\u015flem genellikle birka\u00e7 saniye s\u00fcrer.<\/li>\n<\/ol>\n<p>Tebrikler! Art\u0131k &#8220;AwesomeProject&#8221;in kendi ki\u015fisel kopyas\u0131na sahipsiniz. Bu depo \u00fczerinde diledi\u011finiz gibi de\u011fi\u015fiklik yapabilir, dallar olu\u015fturabilir ve commit&#8217;ler g\u00f6nderebilirsiniz, orijinal projeyi etkilemeden. Bu ad\u0131m, a\u00e7\u0131k kaynak katk\u0131 s\u00fcrecinin ilk ve en \u00f6nemli basama\u011f\u0131d\u0131r.<\/p>\n<h3>\u00c7atallanm\u0131\u015f Depoyu Yerel Ortama Klonlama ve De\u011fi\u015fiklik Yapma<\/h3>\n<p>\u00c7atallanm\u0131\u015f deponuz art\u0131k GitHub&#8217;da haz\u0131r oldu\u011funa g\u00f6re, \u00fczerinde \u00e7al\u0131\u015fmaya ba\u015flamak i\u00e7in onu yerel bilgisayar\u0131n\u0131za klonlaman\u0131z gerekir. Bu ad\u0131m, size kod \u00fczerinde ger\u00e7ek de\u011fi\u015fiklikler yapma imkan\u0131 tan\u0131r.<\/p>\n<ol>\n<li><strong>Kendi \u00c7atallanm\u0131\u015f Deponuzu Klonlay\u0131n:<\/strong> GitHub&#8217;daki kendi \u00e7atallanm\u0131\u015f deponuzun sayfas\u0131na gidin. &#8220;Code&#8221; butonuna t\u0131klayarak HTTPS veya SSH klonlama URL&#8217;sini kopyalay\u0131n. Ard\u0131ndan, terminalinizi veya komut istemcinizi a\u00e7\u0131n ve a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:\n<pre><code class=\"language-bash\">\n            git clone https:\/\/github.com\/sizin-kullanici-adiniz\/AwesomeProject.git\n            <\/pre>\n<p><\/code><br \/>\n            Bu komut, deponun t\u00fcm i\u00e7eri\u011fini yerel bilgisayar\u0131n\u0131zdaki bir klas\u00f6re indirir.<\/li>\n<li><strong>Depo Dizinine Girin:<\/strong> Klonlad\u0131\u011f\u0131n\u0131z dizinin i\u00e7ine girin:\n<pre><code class=\"language-bash\">\n            cd AwesomeProject\n            <\/pre>\n<p><\/code>\n        <\/li>\n<li><strong>Orijinal Depoyu \"Upstream\" Olarak Ekleyin:<\/strong> Bu ad\u0131m kritik \u00f6neme sahiptir. Orijinal depodan gelen g\u00fcncellemeleri kendi \u00e7atallanm\u0131\u015f deponuza \u00e7ekebilmek i\u00e7in, orijinal depoyu \"upstream\" (yukar\u0131 ak\u0131\u015f) ad\u0131nda bir uzak (remote) olarak eklemeniz gerekir.\n<pre><code class=\"language-bash\">\n            git remote add upstream https:\/\/github.com\/orijinal-kullanici-adi\/AwesomeProject.git\n            <\/pre>\n<p><\/code><br \/>\n            Ekledi\u011finiz remote'lar\u0131 kontrol etmek i\u00e7in <code>git remote -v<\/code> komutunu kullanabilirsiniz. Bu komut, hem sizin \u00e7atallanm\u0131\u015f deponuza (genellikle 'origin') hem de orijinal depoya ('upstream') i\u015faret eden URL'leri g\u00f6sterecektir.<\/li>\n<li><strong>Yeni Bir \u00d6zellik Dal\u0131 (Feature Branch) Olu\u015fturun:<\/strong> Do\u011frudan <code>main<\/code> veya <code>master<\/code> dal\u0131nda \u00e7al\u0131\u015fmak yerine, her de\u011fi\u015fiklik veya \u00f6zellik i\u00e7in yeni bir dal olu\u015fturmak iyi bir uygulamad\u0131r. Bu, de\u011fi\u015fikliklerinizin izole kalmas\u0131n\u0131 sa\u011flar ve olas\u0131 \u00e7ak\u0131\u015fmalar\u0131 en aza indirir.\n<pre><code class=\"language-bash\">\n            git checkout -b yeni-ozellik-dali\n            <\/pre>\n<p><\/code><br \/>\n            Bu komut, <code>yeni-ozellik-dali<\/code> ad\u0131nda yeni bir dal olu\u015fturur ve sizi o dala ge\u00e7irir.<\/li>\n<li><strong>De\u011fi\u015fikliklerinizi Yap\u0131n ve Commit Edin:<\/strong> Art\u0131k kod \u00fczerinde istedi\u011finiz de\u011fi\u015fiklikleri yapabilirsiniz. \u00d6rne\u011fin, bir hatay\u0131 d\u00fczeltebilir veya yeni bir \u00f6zellik ekleyebilirsiniz. De\u011fi\u015fiklikleriniz bitti\u011finde, bunlar\u0131 Git'e ekleyin ve commit edin:\n<pre><code class=\"language-bash\">\n            # Dosyalar\u0131n\u0131zda de\u011fi\u015fiklikler yap\u0131n\n            git add .\n            git commit -m \"feat: Kullan\u0131c\u0131 aray\u00fcz\u00fcne yeni bir d\u00fc\u011fme eklendi\"\n            <\/pre>\n<p><\/code><br \/>\n            Unutmay\u0131n, iyi bir commit mesaj\u0131, yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fiklikleri net ve \u00f6z bir \u015fekilde a\u00e7\u0131klayan bir ba\u015fl\u0131\u011fa ve iste\u011fe ba\u011fl\u0131 olarak daha detayl\u0131 bir g\u00f6vdeye sahip olmal\u0131d\u0131r.<\/li>\n<li><strong>De\u011fi\u015fiklikleri Kendi Uzak Deponuza G\u00f6nderin:<\/strong> Yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fiklikleri yerel dal\u0131n\u0131zdan, GitHub'daki kendi \u00e7atallanm\u0131\u015f deponuzdaki ayn\u0131 adl\u0131 dala g\u00f6nderin:\n<pre><code class=\"language-bash\">\n            git push origin yeni-ozellik-dali\n            <\/pre>\n<p><\/code><br \/>\n            Bu komut, yerel <code>yeni-ozellik-dali<\/code> dal\u0131n\u0131zdaki commit'leri <code>origin<\/code> (yani sizin \u00e7atallanm\u0131\u015f deponuz) adresindeki <code>yeni-ozellik-dali<\/code> dal\u0131na y\u00fckler.<\/li>\n<\/ol>\n<div class=\"interactive-tip\">\n        Uzman \u0130pucu: Her zaman yeni bir \u00f6zellik veya hata d\u00fczeltmesi \u00fczerinde \u00e7al\u0131\u015f\u0131rken ayr\u0131 bir dal olu\u015fturun. Bu, ana dal\u0131n\u0131z\u0131 temiz tutar ve ayn\u0131 anda birden fazla konu \u00fczerinde \u00e7al\u0131\u015fman\u0131za olanak tan\u0131r. Ayr\u0131ca, pull request'lerinizin daha kolay incelenmesini sa\u011flar.\n    <\/div>\n<h3>De\u011fi\u015fiklikleri Ana Depoya Geri G\u00f6nderme: Pull Request S\u00fcreci<\/h3>\n<p>De\u011fi\u015fikliklerinizi kendi \u00e7atallanm\u0131\u015f deponuza g\u00f6nderdikten sonra, son ad\u0131m bunlar\u0131 orijinal projeye geri \u00f6nermek i\u00e7in bir \"Pull Request\" (PR) olu\u015fturmakt\u0131r. Bu, sizin katk\u0131lar\u0131n\u0131z\u0131n ana projeye entegre edilmesi talebidir.<\/p>\n<ol>\n<li><strong>GitHub'da Pull Request Olu\u015fturun:<\/strong> Kendi \u00e7atallanm\u0131\u015f deponuzun GitHub sayfas\u0131na gidin. Genellikle, yeni bir dal\u0131 push etti\u011finizde GitHub otomatik olarak bir \"Compare & pull request\" butonu g\u00f6sterir. Bu butona t\u0131klay\u0131n veya \"Pull requests\" sekmesine giderek \"New pull request\" butonuna t\u0131klay\u0131n.<\/li>\n<li><strong>Dallar\u0131 Kar\u015f\u0131la\u015ft\u0131r\u0131n:<\/strong> GitHub, orijinal deponun hangi dal\u0131na (genellikle <code>main<\/code> veya <code>master<\/code>) ve sizin \u00e7atallanm\u0131\u015f deponuzun hangi dal\u0131ndan (<code>yeni-ozellik-dali<\/code>) de\u011fi\u015fiklik g\u00f6nderece\u011finizi se\u00e7menizi isteyecektir. Do\u011fru dallar\u0131 se\u00e7ti\u011finizden emin olun.<\/li>\n<li><strong>Pull Request Ba\u015fl\u0131\u011f\u0131n\u0131 ve A\u00e7\u0131klamas\u0131n\u0131 Yaz\u0131n:<\/strong> A\u00e7\u0131k ve bilgilendirici bir ba\u015fl\u0131k ve a\u00e7\u0131klama yazmak, proje bak\u0131mc\u0131lar\u0131n\u0131n de\u011fi\u015fikliklerinizi anlamas\u0131na yard\u0131mc\u0131 olur. Neden bu de\u011fi\u015fikli\u011fi yapt\u0131\u011f\u0131n\u0131z\u0131, neyi \u00e7\u00f6zd\u00fc\u011f\u00fcn\u00fc veya hangi \u00f6zelli\u011fi ekledi\u011fini a\u00e7\u0131klay\u0131n. \u0130lgili konulara veya di\u011fer PR'lara referans verebilirsiniz (\u00f6rne\u011fin, \"Closes #123\").<\/li>\n<li><strong>Pull Request'i G\u00f6nderin:<\/strong> \"Create pull request\" butonuna t\u0131klad\u0131\u011f\u0131n\u0131zda, PR olu\u015fturulmu\u015f olacakt\u0131r.<\/li>\n<li><strong>Geri Bildirimleri Takip Edin:<\/strong> Proje bak\u0131mc\u0131lar\u0131 PR'\u0131n\u0131z\u0131 inceleyecek, geri bildirimde bulunacak veya de\u011fi\u015fiklikler yapman\u0131z\u0131 isteyebilir. Bu a\u015famada i\u015fbirli\u011fi yapmak \u00f6nemlidir. Gerekirse, yerel dal\u0131n\u0131zda ek de\u011fi\u015fiklikler yap\u0131p bunlar\u0131 push ederek PR'\u0131n\u0131z\u0131 g\u00fcncelleyebilirsiniz.<\/li>\n<li><strong>Birle\u015ftirme (Merge):<\/strong> De\u011fi\u015fiklikleriniz onayland\u0131\u011f\u0131nda, bak\u0131mc\u0131lar PR'\u0131n\u0131z\u0131 ana depoya birle\u015ftirecektir. Tebrikler, ilk a\u00e7\u0131k kaynak katk\u0131n\u0131z\u0131 yapt\u0131n\u0131z!<\/li>\n<\/ol>\n<p>Bu ad\u0131mlar dizisi, bir Git deposunu \u00e7atallamadan, kod \u00fczerinde \u00e7al\u0131\u015fmaya ve nihayetinde ana projeye katk\u0131da bulunmaya kadar t\u00fcm s\u00fcreci kapsar. Bu s\u00fcreci birden fazla kez tekrarlad\u0131k\u00e7a, a\u00e7\u0131k kaynak toplulu\u011funa daha etkin ve verimli bir \u015fekilde katk\u0131da bulunabileceksiniz.<\/p>\n<h2>Geli\u015fmi\u015f Teknikler ve En \u0130yi Uygulamalar Nelerdir? Pro Git Deneyimi<\/h2>\n<p>Git deposu \u00e7atallama ve Pull Request (\u00c7ekme \u0130ste\u011fi) g\u00f6nderme temel i\u015f ak\u0131\u015f\u0131n\u0131 anlad\u0131ktan sonra, daha karma\u015f\u0131k senaryolarla ba\u015fa \u00e7\u0131kmak ve verimlili\u011finizi art\u0131rmak i\u00e7in baz\u0131 geli\u015fmi\u015f teknikler ve en iyi uygulamalar\u0131 bilmek \u00f6nemlidir. Profesyonel bir geli\u015ftirici olarak, bu ipu\u00e7lar\u0131 size projelerde daha ak\u0131c\u0131 ve sorunsuz bir deneyim sunacakt\u0131r. \u00d6zellikle b\u00fcy\u00fck ve aktif projelere katk\u0131da bulunurken bu stratejiler hayati rol oynar.<\/p>\n<h3>Upstream ile Senkronizasyon: \u00c7atallanm\u0131\u015f Deponuzu G\u00fcncel Tutma<\/h3>\n<p>Orijinal depo (<code>upstream<\/code>) s\u00fcrekli olarak g\u00fcncellenirken, sizin \u00e7atallanm\u0131\u015f deponuz (<code>origin<\/code>) geride kalabilir. Katk\u0131da bulunmadan \u00f6nce veya uzun s\u00fcre sonra \u00e7al\u0131\u015fmaya devam ederken \u00e7atallanm\u0131\u015f deponuzu g\u00fcncel tutmak, olas\u0131 \u00e7ak\u0131\u015fmalar\u0131 en aza indirir ve sizin de\u011fi\u015fikliklerinizin daha kolay birle\u015ftirilmesini sa\u011flar. Bunu yapmak i\u00e7in \u015fu ad\u0131mlar\u0131 izleyin:<\/p>\n<ol>\n<li><strong>Upstream'den G\u00fcncellemeleri \u00c7ekin:<\/strong>\n<pre><code class=\"language-bash\">\n            git fetch upstream\n            <\/pre>\n<p><\/code><br \/>\n            Bu komut, <code>upstream<\/code> deposundaki t\u00fcm dallar\u0131 ve commit'leri yerel makinenize getirir ancak yerel dallar\u0131n\u0131z\u0131 otomatik olarak birle\u015ftirmez.<\/li>\n<li><strong>Kendi Ana Dal\u0131n\u0131z\u0131 G\u00fcncelleyin:<\/strong> Yerel <code>main<\/code> (veya <code>master<\/code>) dal\u0131n\u0131z\u0131 <code>upstream<\/code>'deki ana dalla senkronize edin. Bunu yapman\u0131n en temiz yolu <code>rebase<\/code> kullanmakt\u0131r:\n<pre><code class=\"language-bash\">\n            git checkout main\n            git rebase upstream\/main\n            <\/pre>\n<p><\/code><br \/>\n            <code>rebase<\/code>, kendi commit'lerinizi <code>upstream<\/code>'den gelen commit'lerin \u00fczerine yeniden uygulayarak commit ge\u00e7mi\u015finizi do\u011frusal ve temiz tutar. E\u011fer <code>merge<\/code> kullanmak isterseniz <code>git merge upstream\/main<\/code> komutunu da kullanabilirsiniz, ancak bu bir birle\u015ftirme commit'i olu\u015fturur.<\/li>\n<li><strong>De\u011fi\u015fikliklerinizi Kendi \u00c7atallanm\u0131\u015f Deponuza G\u00f6nderin:<\/strong> Yerel <code>main<\/code> dal\u0131n\u0131z\u0131 g\u00fcncelledikten sonra, bu de\u011fi\u015fiklikleri GitHub'daki kendi \u00e7atallanm\u0131\u015f deponuza g\u00f6ndererek senkronizasyonu tamamlay\u0131n:\n<pre><code class=\"language-bash\">\n            git push origin main\n            <\/pre>\n<p><\/code>\n        <\/li>\n<\/ol>\n<p>Bu ad\u0131mlar\u0131, her yeni \u00f6zelli\u011fe ba\u015flamadan \u00f6nce veya uzun s\u00fcreli bir \u00e7al\u0131\u015fman\u0131n ard\u0131ndan periyodik olarak uygulamak, i\u015f ak\u0131\u015f\u0131n\u0131zda b\u00fcy\u00fck bir fark yaratacakt\u0131r. Projelerin h\u0131zl\u0131 de\u011fi\u015fti\u011fi g\u00fcn\u00fcm\u00fcz ortam\u0131nda, g\u00fcncel kalmak b\u00fcy\u00fck \u00f6nem ta\u015f\u0131r.<\/p>\n<h3>\u00c7ak\u0131\u015fma \u00c7\u00f6zme Stratejileri<\/h3>\n<p>Birden fazla geli\u015ftiricinin ayn\u0131 dosya \u00fczerinde \u00e7al\u0131\u015ft\u0131\u011f\u0131 durumlarda \"birle\u015ftirme \u00e7ak\u0131\u015fmalar\u0131\" (merge conflicts) ka\u00e7\u0131n\u0131lmazd\u0131r. \u00d6zellikle uzun s\u00fcreli dallarda veya <code>rebase<\/code> yaparken \u00e7ak\u0131\u015fmalarla kar\u015f\u0131la\u015fabilirsiniz. Bu durumlar\u0131 \u00e7\u00f6zmek i\u00e7in Git'in sundu\u011fu ara\u00e7lar\u0131 etkili bir \u015fekilde kullanman\u0131z gerekir:<\/p>\n<ul>\n<li><strong>\u00c7ak\u0131\u015fma Belirleme:<\/strong> Git, \u00e7ak\u0131\u015fan dosyalar\u0131 belirler ve bu dosyalar\u0131n i\u00e7eri\u011fine \u00f6zel i\u015faret\u00e7iler ekler (<code><<<<<<<<\/code>, <code>=======<\/code>, <code>>>>>>>><\/code>).<\/li>\n<li><strong>Manuel \u00c7\u00f6z\u00fcm:<\/strong> \u00c7ak\u0131\u015fan dosyay\u0131 bir metin d\u00fczenleyicide a\u00e7\u0131n ve i\u015faret\u00e7iler aras\u0131ndaki \u00e7ak\u0131\u015fan kod bloklar\u0131n\u0131 manuel olarak d\u00fczenleyerek istedi\u011finiz son durumu olu\u015fturun.<\/li>\n<li><strong>\u00c7ak\u0131\u015fma \u00c7\u00f6zme Ara\u00e7lar\u0131:<\/strong> Bir\u00e7ok IDE (\u00f6rne\u011fin VS Code, IntelliJ IDEA) ve harici ara\u00e7 (\u00f6rne\u011fin KDiff3, Meld) g\u00f6rsel \u00e7ak\u0131\u015fma \u00e7\u00f6z\u00fcc\u00fcler sunar. Bu ara\u00e7lar, hangi kod blo\u011funu tutaca\u011f\u0131n\u0131za veya ikisini birden nas\u0131l birle\u015ftirece\u011finize karar vermenizi kolayla\u015ft\u0131r\u0131r.<\/li>\n<li><strong>\u00c7\u00f6z\u00fcm\u00fc \u0130\u015faretleme:<\/strong> \u00c7ak\u0131\u015fmalar\u0131 \u00e7\u00f6zd\u00fckten sonra, dosyay\u0131 kaydedin ve Git'e \u00e7\u00f6z\u00fcld\u00fc\u011f\u00fcn\u00fc bildirmek i\u00e7in <code>git add <dosya-ad\u0131><\/code> komutunu kullan\u0131n. T\u00fcm \u00e7ak\u0131\u015fmalar \u00e7\u00f6z\u00fcld\u00fc\u011f\u00fcnde, birle\u015ftirme (veya rebase) i\u015flemini tamamlamak i\u00e7in <code>git commit<\/code> veya <code>git rebase --continue<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n.<\/li>\n<\/ul>\n<h3>Git Cherry-pick Kullan\u0131m\u0131<\/h3>\n<p>Bazen, bir daldaki t\u00fcm commit'leri de\u011fil, sadece belirli birka\u00e7 commit'i ba\u015fka bir dala ta\u015f\u0131mak isteyebilirsiniz. \u0130\u015fte bu senaryoda <code>git cherry-pick<\/code> komutu devreye girer. \u00d6rne\u011fin, ana daldaki bir hata d\u00fczeltmesini, hen\u00fcz birle\u015ftirilmemi\u015f olan bir \u00f6zellik dal\u0131n\u0131za uygulamak isteyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">\n    # Hata d\u00fczeltme commit'inin ID'sini bulun\n    # \u00d6rne\u011fin: abcdef123456\n    git checkout benim-ozellik-dalim\n    git cherry-pick abcdef123456\n    <\/pre>\n<p><\/code><\/p>\n<p>Bu komut, belirtilen commit'i (<code>abcdef123456<\/code>) mevcut dal\u0131n\u0131za yeni bir commit olarak uygular. \u00c7ok dikkatli kullan\u0131lmal\u0131d\u0131r, \u00e7\u00fcnk\u00fc commit ge\u00e7mi\u015fini de\u011fi\u015ftirebilir ve \u00e7ak\u0131\u015fmalara yol a\u00e7abilir.<\/p>\n<h3>Mobil Uyumluluk ve Kullan\u0131c\u0131 Deneyimi<\/h3>\n<p>Peki, bu teknik makaleyi okuyan mobil cihaz kullan\u0131c\u0131lar\u0131 i\u00e7in web deneyimini nas\u0131l iyile\u015ftiririz? Mobil uyumluluk, g\u00fcn\u00fcm\u00fcz web geli\u015ftirme d\u00fcnyas\u0131nda olmazsa olmaz bir gerekliliktir. \u0130\u00e7eri\u011finizin her cihazda iyi g\u00f6r\u00fcnmesini sa\u011flamak, okuyucu kitlenizin eri\u015fimini ve memnuniyetini art\u0131r\u0131r. CSS Media Query'leri, bu hedefe ula\u015fman\u0131n anahtar\u0131d\u0131r.<\/p>\n<div class=\"interactive-tip\">\n      Uzman \u0130pucu: Web sitenizde i\u00e7eri\u011finizi mobil cihazlara uyumlu hale getirmek i\u00e7in CSS Media Query'leri hayati \u00f6neme sahiptir. \u00d6rne\u011fin, k\u00fc\u00e7\u00fck ekranlar i\u00e7in yaz\u0131 boyutunu veya bir elementin geni\u015fli\u011fini ayarlayabilirsiniz. Bu kod bloklar\u0131, tipik olarak harici bir CSS dosyas\u0131nda bulunur ve web sitenizin responsive (duyarl\u0131) tasar\u0131m\u0131na katk\u0131da bulunur.\n    <\/div>\n<pre><code class=\"language-css\">\n    \/* \u00d6rnek bir mobil uyumluluk kural\u0131 *\/\n    @media screen and (max-width: 768px) {\n      body {\n        font-size: 14px; \/* K\u00fc\u00e7\u00fck ekranlarda temel yaz\u0131 tipi boyutunu k\u00fc\u00e7\u00fclt *\/\n      }\n      .container {\n        width: 100%; \/* \u0130\u00e7erik kapsay\u0131c\u0131s\u0131n\u0131 tam geni\u015fli\u011fe yay *\/\n        padding: 10px; \/* \u0130\u00e7 kenar bo\u015flu\u011funu azalt *\/\n      }\n      h2 {\n        font-size: 1.8em; \/* Ba\u015fl\u0131k boyutlar\u0131n\u0131 ayarla *\/\n      }\n      h3 {\n        font-size: 1.4em;\n      }\n    }\n\n    \/* Daha k\u00fc\u00e7\u00fck ekranlar i\u00e7in ek kural (\u00f6rne\u011fin telefonlar) *\/\n    @media screen and (max-width: 480px) {\n      body {\n        padding: 15px; \/* Daha dar ekranlar i\u00e7in genel sayfa bo\u015flu\u011funu ayarla *\/\n      }\n      \/* Di\u011fer elementler i\u00e7in \u00f6zel kurallar eklenebilir *\/\n    }\n    <\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki \u00f6rnek, ekran geni\u015fli\u011fi 768 pikselin alt\u0131na d\u00fc\u015ft\u00fc\u011f\u00fcnde, sayfa g\u00f6vdesinin yaz\u0131 tipini k\u00fc\u00e7\u00fclt\u00fcr ve bir 'container' s\u0131n\u0131f\u0131na sahip elementin geni\u015fli\u011fini tam ekrana yayar. Ayr\u0131ca ba\u015fl\u0131k boyutlar\u0131n\u0131 da mobil cihazlara uygun hale getirir. Bu sayede, okuyucular\u0131n\u0131z makalenizi hangi cihazdan okursa okusun, keyifli ve okunabilir bir deneyim ya\u015far. Bu t\u00fcr responsive tasar\u0131m prensipleri, teknik makalelerin ve web i\u00e7eriklerinin geni\u015f kitlelere ula\u015fmas\u0131 i\u00e7in vazge\u00e7ilmezdir.<\/p>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<p>Bu makalede, Git deposu \u00e7atallama (forking) kavram\u0131n\u0131 derinlemesine inceledik. Bir Git deposunu neden \u00e7atallamam\u0131z gerekti\u011fini, \u00e7atallama ile klonlama aras\u0131ndaki temel farklar\u0131, GitHub \u00fczerinden nas\u0131l bir depo \u00e7atallanaca\u011f\u0131n\u0131 ve yerel ortamda nas\u0131l \u00e7al\u0131\u015f\u0131laca\u011f\u0131n\u0131 ad\u0131m ad\u0131m \u00f6\u011frendik. Ayr\u0131ca, de\u011fi\u015fikliklerinizi ana projeye geri g\u00f6ndermek i\u00e7in Pull Request s\u00fcrecinin nas\u0131l i\u015fledi\u011fini ve geli\u015fmi\u015f Git tekniklerini kullanarak i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 nas\u0131l optimize edebilece\u011finizi de g\u00f6rd\u00fck. Bu bilgilerle donanm\u0131\u015f olarak, art\u0131k a\u00e7\u0131k kaynak toplulu\u011funa anlaml\u0131 katk\u0131larda bulunmaya veya kendi projeleriniz \u00fczerinde daha g\u00fcvenli bir \u015fekilde \u00e7al\u0131\u015fmaya haz\u0131rs\u0131n\u0131z.<\/p>\n<p>Git \u00e7atallama, modern yaz\u0131l\u0131m geli\u015ftirmenin ve \u00f6zellikle a\u00e7\u0131k kaynak ekosisteminin temel ta\u015flar\u0131ndan biridir. Size ba\u011f\u0131ms\u0131z bir \u00e7al\u0131\u015fma alan\u0131 sunarken, ayn\u0131 zamanda k\u00fcresel bir geli\u015ftirici toplulu\u011fuyla etkile\u015fim kurman\u0131z\u0131 ve onlar\u0131n projelerine de\u011fer katman\u0131z\u0131 sa\u011flar. Bu g\u00fc\u00e7l\u00fc arac\u0131 ustaca kullanarak, hem ki\u015fisel teknik becerilerinizi geli\u015ftirecek hem de d\u00fcnyan\u0131n d\u00f6rt bir yan\u0131ndaki geli\u015ftiricilerle i\u015fbirli\u011fi yapma f\u0131rsat\u0131n\u0131 yakalayacaks\u0131n\u0131z. Unutmay\u0131n, her b\u00fcy\u00fck katk\u0131 k\u00fc\u00e7\u00fck bir ad\u0131mla ba\u015flar ve \u00e7atallama, bu ad\u0131m\u0131 atman\u0131n en g\u00fcvenli ve etkili yoludur. \u015eimdi, klavyenizin ba\u015f\u0131na ge\u00e7in ve bu bilgileri prati\u011fe d\u00f6kerek kendi izinizi b\u0131rakmaya ba\u015flay\u0131n!<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<ol>\n<li>\n            <strong>Fork ile Clone aras\u0131ndaki fark nedir?<\/strong><\/p>\n<p><strong>Fork (\u00c7atallama):<\/strong> Bir depoyu uzak bir sunucuda (\u00f6rn. GitHub) kendi hesab\u0131n\u0131za kopyalama i\u015flemidir. Bu, orijinal depoya yazma izniniz olmasa bile kendi kopyan\u0131zda de\u011fi\u015fiklik yapman\u0131za olanak tan\u0131r. Orijinal deponun ba\u011f\u0131ms\u0131z bir sunucu taraf\u0131 kopyas\u0131n\u0131 olu\u015fturursunuz. Genellikle a\u00e7\u0131k kaynak projelerine katk\u0131da bulunman\u0131n ilk ad\u0131m\u0131d\u0131r.<\/p>\n<p><strong>Clone (Klonlama):<\/strong> Mevcut bir deponun (kendi \u00e7atallanm\u0131\u015f deponuz veya do\u011frudan eri\u015fiminiz olan bir ana depo olabilir) yerel bilgisayar\u0131n\u0131za tam bir kopyas\u0131n\u0131 indirme i\u015flemidir. Bu, kodu yerel ortam\u0131n\u0131zda \u00e7al\u0131\u015ft\u0131r\u0131p \u00fczerinde de\u011fi\u015fiklikler yapman\u0131z\u0131 sa\u011flar. Klonlama, bir deponun \u00e7al\u0131\u015fma kopyas\u0131n\u0131 yerel diskinize indirir.<\/p>\n<\/li>\n<li>\n            <strong>Kendi depomu fork edebilir miyim?<\/strong><\/p>\n<p>Teknik olarak evet, ancak genellikle pek anlaml\u0131 de\u011fildir. Kendi deponuz zaten size aittir ve \u00fczerinde do\u011frudan de\u011fi\u015fiklik yapma izniniz vard\u0131r. Kendi deponuzun farkl\u0131 bir versiyonunu olu\u015fturmak isterseniz, genellikle bir dal (branch) olu\u015fturmak daha uygun bir yakla\u015f\u0131md\u0131r. Forking genellikle, \u00fczerinde yazma izniniz olmayan ba\u015fka birinin deposu i\u00e7in kullan\u0131l\u0131r.<\/p>\n<\/li>\n<li>\n            <strong>Fork etti\u011fim depo g\u00fcncellendi\u011finde kendi depomu nas\u0131l g\u00fcncel tutar\u0131m?<\/strong><\/p>\n<p>Orijinal depodan gelen g\u00fcncellemeleri kendi \u00e7atallanm\u0131\u015f deponuza \u00e7ekmek i\u00e7in, orijinal depoyu \"upstream\" remote olarak eklemeniz gerekir (<code>git remote add upstream [orijinal-depo-URL]<\/code>). Ard\u0131ndan, <code>git fetch upstream<\/code> komutuyla g\u00fcncellemeleri \u00e7eker ve <code>git checkout main<\/code>, <code>git rebase upstream\/main<\/code> (veya <code>git merge upstream\/main<\/code>) komutlar\u0131yla kendi ana dal\u0131n\u0131z\u0131 g\u00fcncellersiniz. Son olarak, <code>git push origin main<\/code> ile bu g\u00fcncellemeleri GitHub'daki kendi \u00e7atallanm\u0131\u015f deponuza g\u00f6nderirsiniz.<\/p>\n<\/li>\n<li>\n            <strong>Pull Request'im reddedilirse ne yapmal\u0131y\u0131m?<\/strong><\/p>\n<p>Pull Request'inizin reddedilmesi, geli\u015ftirme s\u00fcrecinin do\u011fal bir par\u00e7as\u0131d\u0131r ve hayal k\u0131r\u0131kl\u0131\u011f\u0131na u\u011framay\u0131n. Reddedilme nedenlerini anlamak i\u00e7in geri bildirimleri dikkatlice okuyun. Proje bak\u0131mc\u0131lar\u0131 genellikle neden reddettiklerini ve hangi de\u011fi\u015fikliklerin beklendi\u011fini a\u00e7\u0131klarlar. Geri bildirimlere dayanarak kodunuzda iyile\u015ftirmeler yapabilir ve g\u00fcncellenmi\u015f Pull Request'inizi tekrar g\u00f6nderebilirsiniz. Ayr\u0131ca, projeye \u00f6zel katk\u0131 y\u00f6nergeleri (CONTRIBUTING.md dosyas\u0131 gibi) varsa, bunlar\u0131 incelemek de yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<\/li>\n<li>\n            <strong>Bir depoyu fork etmek i\u00e7in \u00f6zel izinler gerekir mi?<\/strong><\/p>\n<p>Hay\u0131r, genel olarak a\u00e7\u0131k kaynak projelerini fork etmek i\u00e7in herhangi bir \u00f6zel izne ihtiyac\u0131n\u0131z yoktur. GitHub, GitLab gibi platformlar, herhangi bir kullan\u0131c\u0131n\u0131n herkese a\u00e7\u0131k (public) bir depoyu kendi hesab\u0131na \u00e7atallamas\u0131na izin verir. Bu, a\u00e7\u0131k kaynak ruhunun temel bir par\u00e7as\u0131d\u0131r: herkesin kodu incelemesine, \u00fczerinde denemeler yapmas\u0131na ve katk\u0131da bulunmas\u0131na olanak tan\u0131mak. Ancak, fork etti\u011finiz \u00f6zel (private) bir depo varsa, bu deponun sahibinin size eri\u015fim izni vermi\u015f olmas\u0131 gerekir.<\/p>\n<\/li>\n<\/ol>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Git deposu \u00e7atallama (forking) nedir, neden \u00f6nemlidir ve a\u00e7\u0131k kaynak projelerine nas\u0131l katk\u0131da bulunman\u0131z\u0131 sa\u011flar? Bu kapsaml\u0131 rehberde&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1401],"tags":[],"class_list":{"0":"post-34399","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-git","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Git Deposu \u00c7atallama: A\u00e7\u0131k Kaynak Projelerine Katk\u0131n\u0131n Anahtar\u0131<\/title>\n<meta name=\"description\" content=\"Git deposu \u00e7atallama (forking) nedir, neden \u00f6nemlidir ve a\u00e7\u0131k kaynak projelerine nas\u0131l katk\u0131da bulunman\u0131z\u0131 sa\u011flar? Bu kapsaml\u0131 rehberde ad\u0131m ad\u0131m \u00f6\u011frenin ve geli\u015ftirme s\u00fcre\u00e7lerinizi optimize edin.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Git Deposu \u00c7atallama: A\u00e7\u0131k Kaynak Projelerine Katk\u0131n\u0131n Anahtar\u0131\" \/>\n<meta property=\"og:description\" content=\"Git deposu \u00e7atallama (forking) nedir, neden \u00f6nemlidir ve a\u00e7\u0131k kaynak projelerine nas\u0131l katk\u0131da bulunman\u0131z\u0131 sa\u011flar? Bu kapsaml\u0131 rehberde ad\u0131m ad\u0131m \u00f6\u011frenin ve geli\u015ftirme s\u00fcre\u00e7lerinizi optimize edin.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-16T03:00:59+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Git Deposu \u00c7atallama: A\u00e7\u0131k Kaynak Projelerine Katk\u0131n\u0131n Anahtar\u0131\",\"datePublished\":\"2025-11-16T03:00:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/\"},\"wordCount\":3875,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Git\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/\",\"name\":\"Git Deposu \u00c7atallama: A\u00e7\u0131k Kaynak Projelerine Katk\u0131n\u0131n Anahtar\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-16T03:00:59+00:00\",\"description\":\"Git deposu \u00e7atallama (forking) nedir, neden \u00f6nemlidir ve a\u00e7\u0131k kaynak projelerine nas\u0131l katk\u0131da bulunman\u0131z\u0131 sa\u011flar? Bu kapsaml\u0131 rehberde ad\u0131m ad\u0131m \u00f6\u011frenin ve geli\u015ftirme s\u00fcre\u00e7lerinizi optimize edin.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Git Deposu \u00c7atallama: A\u00e7\u0131k Kaynak Projelerine Katk\u0131n\u0131n Anahtar\u0131\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Git Deposu \u00c7atallama: A\u00e7\u0131k Kaynak Projelerine Katk\u0131n\u0131n Anahtar\u0131","description":"Git deposu \u00e7atallama (forking) nedir, neden \u00f6nemlidir ve a\u00e7\u0131k kaynak projelerine nas\u0131l katk\u0131da bulunman\u0131z\u0131 sa\u011flar? Bu kapsaml\u0131 rehberde ad\u0131m ad\u0131m \u00f6\u011frenin ve geli\u015ftirme s\u00fcre\u00e7lerinizi optimize edin.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/","og_locale":"tr_TR","og_type":"article","og_title":"Git Deposu \u00c7atallama: A\u00e7\u0131k Kaynak Projelerine Katk\u0131n\u0131n Anahtar\u0131","og_description":"Git deposu \u00e7atallama (forking) nedir, neden \u00f6nemlidir ve a\u00e7\u0131k kaynak projelerine nas\u0131l katk\u0131da bulunman\u0131z\u0131 sa\u011flar? Bu kapsaml\u0131 rehberde ad\u0131m ad\u0131m \u00f6\u011frenin ve geli\u015ftirme s\u00fcre\u00e7lerinizi optimize edin.","og_url":"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-16T03:00:59+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"20 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Git Deposu \u00c7atallama: A\u00e7\u0131k Kaynak Projelerine Katk\u0131n\u0131n Anahtar\u0131","datePublished":"2025-11-16T03:00:59+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/"},"wordCount":3875,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Git"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/","url":"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/","name":"Git Deposu \u00c7atallama: A\u00e7\u0131k Kaynak Projelerine Katk\u0131n\u0131n Anahtar\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-16T03:00:59+00:00","description":"Git deposu \u00e7atallama (forking) nedir, neden \u00f6nemlidir ve a\u00e7\u0131k kaynak projelerine nas\u0131l katk\u0131da bulunman\u0131z\u0131 sa\u011flar? Bu kapsaml\u0131 rehberde ad\u0131m ad\u0131m \u00f6\u011frenin ve geli\u015ftirme s\u00fcre\u00e7lerinizi optimize edin.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/git-deposu-catallama-acik-kaynak-projelerine-katkinin-anahtari\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Git Deposu \u00c7atallama: A\u00e7\u0131k Kaynak Projelerine Katk\u0131n\u0131n Anahtar\u0131"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34399","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=34399"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34399\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=34399"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=34399"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=34399"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}