{"id":36192,"date":"2025-12-10T00:40:49","date_gmt":"2025-12-09T21:40:49","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=36192"},"modified":"2025-12-10T00:40:49","modified_gmt":"2025-12-09T21:40:49","slug":"githubda-pull-request-nasil-olusturulur","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/githubda-pull-request-nasil-olusturulur\/","title":{"rendered":"GitHub&#8217;da Pull Request Nas\u0131l Olu\u015fturulur?"},"content":{"rendered":"<p><body><\/p>\n<h2>GitHub&#8217;da Pull Request Nas\u0131l Olu\u015fturulur?<\/h2>\n<p>GitHub, modern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinin vazge\u00e7ilmez bir par\u00e7as\u0131 haline gelmi\u015f, d\u00fcnyan\u0131n en b\u00fcy\u00fck kod bar\u0131nd\u0131rma platformlar\u0131ndan biridir. Milyonlarca geli\u015ftirici, a\u00e7\u0131k kaynak projesi ve \u00f6zel \u015firket, kodlar\u0131n\u0131 depolamak, y\u00f6netmek ve i\u015fbirli\u011fi yapmak i\u00e7in GitHub&#8217;\u0131 kullan\u0131r. Bu i\u015fbirli\u011finin merkezinde yer alan en temel ve g\u00fc\u00e7l\u00fc mekanizmalardan biri ise &#8220;Pull Request&#8221; (\u00c7ekme \u0130ste\u011fi) veya k\u0131saca PR&#8217;d\u0131r.<\/p>\n<p>Bir Pull Request, bir geli\u015ftiricinin kendi kod de\u011fi\u015fikliklerini bir projenin ana kod taban\u0131na (genellikle <code>main<\/code> veya <code>master<\/code> dal\u0131na) entegre etme iste\u011fidir. Bu istek, sadece bir kod g\u00f6nderme i\u015flemi de\u011fil, ayn\u0131 zamanda di\u011fer ekip \u00fcyelerinin veya proje y\u00f6neticilerinin bu de\u011fi\u015fiklikleri g\u00f6zden ge\u00e7irmesi, tart\u0131\u015fmas\u0131 ve onaylamas\u0131 i\u00e7in bir platform sunar. Bu sayede kod kalitesi art\u0131r\u0131l\u0131r, olas\u0131 hatalar erken a\u015famada tespit edilir ve projenin genel sa\u011fl\u0131\u011f\u0131 korunur. GitHub&#8217;da Pull Request olu\u015fturma s\u00fcreci, ister b\u00fcy\u00fck bir a\u00e7\u0131k kaynak projesine katk\u0131da bulunuyor olun, ister k\u00fc\u00e7\u00fck bir ekipte \u00e7al\u0131\u015f\u0131yor olun, her geli\u015ftiricinin bilmesi gereken temel bir beceridir. Bu makale, GitHub&#8217;da Pull Request olu\u015fturman\u0131n t\u00fcm ad\u0131mlar\u0131n\u0131, en iyi uygulamalar\u0131n\u0131 ve s\u0131k kar\u015f\u0131la\u015f\u0131lan durumlar\u0131 detayl\u0131 bir \u015fekilde ele alacakt\u0131r.<\/p>\n<h3>Pull Request&#8217;in \u00d6nemi ve Temel Ak\u0131\u015f\u0131<\/h3>\n<p>Pull Request&#8217;ler, geli\u015ftirme s\u00fcre\u00e7lerinde \u015feffafl\u0131\u011f\u0131, i\u015fbirli\u011fini ve kalite kontrol\u00fcn\u00fc sa\u011flamak i\u00e7in kritik bir rol oynar. Bir geli\u015ftirici olarak yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin do\u011frudan ana dala entegre edilmesindense, bir PR arac\u0131l\u0131\u011f\u0131yla g\u00f6zden ge\u00e7irilmesi, hatalar\u0131n veya iyile\u015ftirme alanlar\u0131n\u0131n ke\u015ffedilmesini sa\u011flar. Bu s\u00fcre\u00e7, projenin s\u00fcrd\u00fcr\u00fclebilirli\u011fini ve g\u00fcvenilirli\u011fini art\u0131r\u0131r.<\/p>\n<p>Temel bir Pull Request ak\u0131\u015f\u0131 genellikle \u015fu ad\u0131mlar\u0131 i\u00e7erir:<br \/>\n1.  <strong>Depoyu \u00c7atallama (Forking) veya Klonlama (Cloning):<\/strong> Harici bir projeye katk\u0131da bulunuyorsan\u0131z depoyu \u00e7atallars\u0131n\u0131z. Kendi projenizde \u00e7al\u0131\u015f\u0131yorsan\u0131z depoyu do\u011frudan klonlars\u0131n\u0131z.<br \/>\n2.  <strong>Yeni Bir Dal Olu\u015fturma (Creating a New Branch):<\/strong> De\u011fi\u015fikliklerinizi ana daldan izole etmek i\u00e7in yeni bir dal olu\u015fturursunuz.<br \/>\n3.  <strong>De\u011fi\u015fiklikleri Yapma (Making Changes):<\/strong> Olu\u015fturdu\u011funuz dal \u00fczerinde kod de\u011fi\u015fikliklerinizi ger\u00e7ekle\u015ftirirsiniz.<br \/>\n4.  <strong>De\u011fi\u015fiklikleri Kaydetme (Committing Changes):<\/strong> Yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fiklikleri yerel deponuza kaydedersiniz.<br \/>\n5.  <strong>De\u011fi\u015fiklikleri Uzak Depoya G\u00f6nderme (Pushing Changes):<\/strong> Yerel deponuzdaki de\u011fi\u015fiklikleri GitHub&#8217;daki uzak deponuza g\u00f6nderirsiniz.<br \/>\n6.  <strong>Pull Request Olu\u015fturma (Creating a Pull Request):<\/strong> GitHub aray\u00fcz\u00fc \u00fczerinden bir Pull Request a\u00e7ars\u0131n\u0131z.<br \/>\n7.  <strong>Kod \u0130ncelemesi ve Tart\u0131\u015fma (Code Review and Discussion):<\/strong> Di\u011fer geli\u015ftiriciler kodunuzu inceler, yorum yapar ve \u00f6nerilerde bulunur.<br \/>\n8.  <strong>De\u011fi\u015fiklikleri Birle\u015ftirme (Merging Changes):<\/strong> De\u011fi\u015fiklikler onayland\u0131ktan sonra ana dala birle\u015ftirilir.<\/p>\n<h3>\u00d6n Ko\u015fullar<\/h3>\n<p>GitHub&#8217;da Pull Request olu\u015fturmaya ba\u015flamadan \u00f6nce baz\u0131 temel gereksinimleri kar\u015f\u0131laman\u0131z gerekmektedir:<\/p>\n<h4>GitHub Hesab\u0131<\/h4>\n<p>GitHub platformunda bir hesaba sahip olman\u0131z \u015fartt\u0131r. E\u011fer yoksa, github.com adresinden \u00fccretsiz bir hesap olu\u015fturabilirsiniz.<\/p>\n<h4>Yerel Makinenizde Git Kurulumu<\/h4>\n<p>Kod de\u011fi\u015fikliklerinizi y\u00f6netmek i\u00e7in yerel bilgisayar\u0131n\u0131zda Git s\u00fcr\u00fcm kontrol sisteminin kurulu olmas\u0131 gerekir. Git&#8217;i git-scm.com adresinden indirebilir ve y\u00fckleyebilirsiniz.<\/p>\n<h4>Temel Git Komut Bilgisi<\/h4>\n<p><code>git clone<\/code>, <code>git add<\/code>, <code>git commit<\/code>, <code>git push<\/code>, <code>git checkout<\/code> gibi temel Git komutlar\u0131na a\u015fina olman\u0131z beklenir. Bu komutlar, Pull Request s\u00fcrecinin her a\u015famas\u0131nda kullan\u0131lacakt\u0131r.<\/p>\n<h4>Dallar (Branches) Hakk\u0131nda Temel Anlay\u0131\u015f<\/h4>\n<p>Git&#8217;in dallanma (branching) mekanizmas\u0131, Pull Request s\u00fcrecinin temelini olu\u015fturur. Dallar, ana kod taban\u0131ndan ayr\u0131l\u0131p ba\u011f\u0131ms\u0131z olarak de\u011fi\u015fiklikler yapman\u0131za olanak tan\u0131r.<\/p>\n<h3>Pull Request Olu\u015fturma Ak\u0131\u015f\u0131n\u0131 Anlama<\/h3>\n<p>Pull Request olu\u015fturma s\u00fcreci, projenin yap\u0131s\u0131na ve katk\u0131da bulunma \u015feklinize g\u00f6re hafif farkl\u0131l\u0131klar g\u00f6sterebilir. Ancak genel ak\u0131\u015f ayn\u0131d\u0131r.<\/p>\n<h4>Depoyu \u00c7atallama (Forking)<\/h4>\n<p>E\u011fer harici bir a\u00e7\u0131k kaynak projesine katk\u0131da bulunuyorsan\u0131z veya \u00fczerinde do\u011frudan yazma izninizin olmad\u0131\u011f\u0131 bir depoda \u00e7al\u0131\u015f\u0131yorsan\u0131z, projenin kendi kopyas\u0131n\u0131 olu\u015fturman\u0131z gerekir. Bu i\u015fleme &#8220;\u00e7atallama&#8221; (forking) denir.<\/p>\n<h5>\u00c7atallama Nedir?<\/h5>\n<p>\u00c7atallama, bir deponun tamam\u0131n\u0131n kendi GitHub hesab\u0131n\u0131za kopyalanmas\u0131d\u0131r. Bu, orijinal depoyu etkilemeden kendi kopyan\u0131z \u00fczerinde de\u011fi\u015fiklikler yapman\u0131za olanak tan\u0131r. Yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fiklikleri orijinal depoya geri g\u00f6ndermek istedi\u011finizde bir Pull Request a\u00e7ars\u0131n\u0131z.<\/p>\n<h5>Ne Zaman \u00c7atallama Yap\u0131l\u0131r?<\/h5>\n<p>Genellikle bir a\u00e7\u0131k kaynak projesine ilk kez katk\u0131da bulunurken veya bir ekibin ortak deposunda do\u011frudan <code>push<\/code> izniniz olmad\u0131\u011f\u0131nda \u00e7atallama yapars\u0131n\u0131z. Kendi projenizde veya do\u011frudan katk\u0131da bulundu\u011funuz bir ekip projesinde \u00e7al\u0131\u015f\u0131yorsan\u0131z, \u00e7atallama yerine do\u011frudan klonlama yapabilirsiniz.<\/p>\n<h5>GitHub \u00dczerinde Depoyu \u00c7atallama Ad\u0131mlar\u0131<\/h5>\n<p>1.  GitHub&#8217;da katk\u0131da bulunmak istedi\u011finiz orijinal depoya gidin.<br \/>\n2.  Sayfan\u0131n sa\u011f \u00fcst k\u00f6\u015fesinde bulunan &#8220;Fork&#8221; butonuna t\u0131klay\u0131n.<br \/>\n3.  E\u011fer birden fazla GitHub organizasyonunuz varsa, depoyu \u00e7atallamak istedi\u011finiz hesab\u0131 se\u00e7in.<br \/>\n4.  GitHub, deponun bir kopyas\u0131n\u0131 sizin hesab\u0131n\u0131za olu\u015fturacakt\u0131r. Art\u0131k bu sizin &#8220;\u00e7atallanm\u0131\u015f&#8221; (forked) deponuzdur.<\/p>\n<h4>Depoyu Klonlama (Cloning)<\/h4>\n<p>\u00c7atallad\u0131\u011f\u0131n\u0131z depoyu (veya do\u011frudan \u00fczerinde \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131z depoyu) yerel makinenize indirmek i\u00e7in klonlama yapman\u0131z gerekir.<\/p>\n<p>1.  Kendi \u00e7atallanm\u0131\u015f deponuzun (veya do\u011frudan \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131z deponun) GitHub sayfas\u0131na gidin.<br \/>\n2.  &#8220;Code&#8221; butonuna t\u0131klay\u0131n ve HTTPS veya SSH URL&#8217;sini kopyalay\u0131n.<br \/>\n3.  Yerel bilgisayar\u0131n\u0131zda bir terminal veya komut istemcisi a\u00e7\u0131n.<br \/>\n4.  Depoyu klonlamak istedi\u011finiz dizine gidin.<br \/>\n5.  A\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">git clone [kopyalad\u0131\u011f\u0131n\u0131z_url]<\/code><\/pre>\n<p>    \u00d6rnek: <code>git clone https:\/\/github.com\/kullaniciadi\/projeadi.git<\/code><br \/>\n6.  Klonlama i\u015flemi tamamland\u0131ktan sonra, yeni olu\u015fturulan dizine girin:<\/p>\n<pre><code class=\"language-bash\">cd projeadi<\/code><\/pre>\n<h4>Yeni Bir Dal Olu\u015fturma (Creating a New Branch)<\/h4>\n<p>De\u011fi\u015fikliklerinizi ana kod taban\u0131ndan izole etmek ve Pull Request&#8217;in daha kolay y\u00f6netilmesini sa\u011flamak i\u00e7in her zaman yeni bir dal \u00fczerinde \u00e7al\u0131\u015fmal\u0131s\u0131n\u0131z.<\/p>\n<h5>Neden Ayr\u0131 Bir Dal \u00dczerinde \u00c7al\u0131\u015f\u0131lmal\u0131?<\/h5>\n<p>*   <strong>\u0130zolasyon:<\/strong> Yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fiklikler ana dal\u0131 etkilemez. Bu, ana dal\u0131n her zaman kararl\u0131 kalmas\u0131n\u0131 sa\u011flar.<br \/>\n*   <strong>\u0130nceleme Kolayl\u0131\u011f\u0131:<\/strong> Sadece belirli bir \u00f6zellik veya hata d\u00fczeltmesine odaklanan bir dal, kod incelemesini kolayla\u015ft\u0131r\u0131r.<br \/>\n*   <strong>Paralel Geli\u015ftirme:<\/strong> Farkl\u0131 geli\u015ftiriciler ayn\u0131 anda farkl\u0131 dallar \u00fczerinde \u00e7al\u0131\u015fabilir.<\/p>\n<h5>Yeni Dal Olu\u015fturma ve Ge\u00e7i\u015f Yapma<\/h5>\n<p>Terminalinizde, klonlad\u0131\u011f\u0131n\u0131z deponun dizinindeyken a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">git checkout -b [dal-ad\u0131]<\/code><\/pre>\n<p>\u00d6rnek: <code>git checkout -b feature\/add-login-page<\/code><br \/>\nBu komut hem yeni bir dal olu\u015fturur (<code>feature\/add-login-page<\/code>) hem de o dala ge\u00e7i\u015f yapar.<\/p>\n<h5>Dal \u0130simlendirme Kurallar\u0131<\/h5>\n<p>Dallar\u0131n\u0131z\u0131 anlaml\u0131 bir \u015fekilde adland\u0131rmak iyi bir uygulamad\u0131r:<br \/>\n*   <code>feature\/ozellik-adi<\/code>: Yeni bir \u00f6zellik geli\u015ftirirken.<br \/>\n*   <code>bugfix\/hata-duzeltme-adi<\/code>: Bir hatay\u0131 d\u00fczeltirken.<br \/>\n*   <code>refactor\/kod-yeniden-yapilandirma<\/code>: Kod refactoring yaparken.<br \/>\n*   <code>docs\/belgelendirme-guncellemesi<\/code>: Dok\u00fcmantasyon de\u011fi\u015fiklikleri i\u00e7in.<\/p>\n<h4>De\u011fi\u015fiklikleri Yapma (Making Changes)<\/h4>\n<p>Art\u0131k yeni dal\u0131n\u0131zdayken, kod de\u011fi\u015fikliklerinizi yapmaya ba\u015flayabilirsiniz. Bu, yeni bir \u00f6zellik eklemek, bir hatay\u0131 d\u00fczeltmek, dok\u00fcmantasyonu g\u00fcncellemek veya mevcut kodu iyile\u015ftirmek olabilir.<\/p>\n<h5>En \u0130yi Uygulamalar:<\/h5>\n<p>*   <strong>Odaklanm\u0131\u015f De\u011fi\u015fiklikler:<\/strong> Bir Pull Request&#8217;in tek bir amaca hizmet etmesini sa\u011flay\u0131n (\u00f6rn. sadece bir \u00f6zellik veya bir hata d\u00fczeltmesi). Birden fazla ba\u011f\u0131ms\u0131z de\u011fi\u015fikli\u011fi tek bir PR&#8217;da birle\u015ftirmekten ka\u00e7\u0131n\u0131n.<br \/>\n*   <strong>K\u00fc\u00e7\u00fck, S\u0131k Komitler:<\/strong> De\u011fi\u015fikliklerinizi k\u00fc\u00e7\u00fck, mant\u0131ksal par\u00e7alara ay\u0131rarak s\u0131k s\u0131k komitleyin. Her komit, belirli bir i\u015flevi tamamlamal\u0131d\u0131r. Bu, ge\u00e7mi\u015fi daha okunabilir hale getirir ve olas\u0131 sorunlar\u0131n izlenmesini kolayla\u015ft\u0131r\u0131r.<\/p>\n<h4>De\u011fi\u015fiklikleri Staging ve Komitleme (Staging and Committing Changes)<\/h4>\n<p>Yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fiklikleri yerel deponuza kaydetmek i\u00e7in Git komutlar\u0131n\u0131 kullanman\u0131z gerekir.<\/p>\n<p>1.  <strong>De\u011fi\u015fiklikleri Staging Alan\u0131na Ekleme:<\/strong><br \/>\n    De\u011fi\u015fiklik yapt\u0131\u011f\u0131n\u0131z dosyalar\u0131 veya t\u00fcm de\u011fi\u015fiklikleri staging alan\u0131na ekleyin:<\/p>\n<pre><code class=\"language-bash\">git add . # T\u00fcm de\u011fi\u015fiklikleri ekler\n    # veya\n    git add dosya1.js dosya2.css # Belirli dosyalar\u0131 ekler<\/code><\/pre>\n<p>2.  <strong>De\u011fi\u015fiklikleri Komitleme:<\/strong><br \/>\n    Staging alan\u0131ndaki de\u011fi\u015fiklikleri a\u00e7\u0131klay\u0131c\u0131 bir mesajla komitleyin:<\/p>\n<pre><code class=\"language-bash\">git commit -m \"\u00d6zellik: Kullan\u0131c\u0131 giri\u015f sayfas\u0131 eklendi\"<\/code><\/pre>\n<p>    \u0130yi bir komit mesaj\u0131, de\u011fi\u015fikli\u011fin ne hakk\u0131nda oldu\u011funu ve neden yap\u0131ld\u0131\u011f\u0131n\u0131 a\u00e7\u0131k\u00e7a belirtmelidir. Genellikle ilk sat\u0131r k\u0131sa bir \u00f6zet (50-72 karakter), ard\u0131ndan bo\u015f bir sat\u0131r ve daha sonra daha detayl\u0131 bir a\u00e7\u0131klama kullan\u0131l\u0131r.<\/p>\n<h4>De\u011fi\u015fiklikleri GitHub&#8217;a G\u00f6nderme (Pushing Changes to GitHub)<\/h4>\n<p>Yerel deponuzdaki komitlenmi\u015f de\u011fi\u015fiklikleri GitHub&#8217;daki uzak deponuza g\u00f6ndermeniz gerekir.<\/p>\n<pre><code class=\"language-bash\">git push origin [dal-ad\u0131]<\/code><\/pre>\n<p>\u00d6rnek: <code>git push origin feature\/add-login-page<\/code><\/p>\n<p>E\u011fer bu, yeni olu\u015fturdu\u011funuz bir dal\u0131 ilk kez g\u00f6nderiyorsan\u0131z, Git size <code>-u<\/code> (upstream) bayra\u011f\u0131n\u0131 kullanman\u0131z\u0131 \u00f6nerebilir:<\/p>\n<pre><code class=\"language-bash\">git push -u origin feature\/add-login-page<\/code><\/pre>\n<p>Bu komut, yerel dal\u0131n\u0131z\u0131 uzak depodaki ayn\u0131 isimli dala ba\u011flar, b\u00f6ylece sonraki <code>git push<\/code> ve <code>git pull<\/code> komutlar\u0131 i\u00e7in <code>origin feature\/add-login-page<\/code> yazman\u0131za gerek kalmaz.<\/p>\n<h3>Pull Request Olu\u015fturma<\/h3>\n<p>De\u011fi\u015fikliklerinizi GitHub&#8217;a g\u00f6nderdikten sonra, Pull Request olu\u015fturma zaman\u0131 gelir.<\/p>\n<h4>GitHub&#8217;a Gitme<\/h4>\n<p>1.  <strong>Otomatik Uyar\u0131:<\/strong> De\u011fi\u015fikliklerinizi GitHub&#8217;a g\u00f6nderdikten sonra, terminalinizde genellikle Pull Request olu\u015fturman\u0131z i\u00e7in bir URL g\u00f6sterilir. Bu URL&#8217;yi takip edebilirsiniz.<br \/>\n2.  <strong>Manuel Navigasyon:<\/strong> Veya GitHub&#8217;daki deponuzun sayfas\u0131na gidin. Genellikle deponuzun ana sayfas\u0131nda, yeni g\u00f6nderdi\u011finiz dal\u0131 alg\u0131layan ve &#8220;Compare &#038; pull request&#8221; (Kar\u015f\u0131la\u015ft\u0131r ve \u00e7ekme iste\u011fi olu\u015ftur) butonunu g\u00f6steren bir banner g\u00f6r\u00fcrs\u00fcn\u00fcz. Bu butona t\u0131klay\u0131n.<br \/>\n3.  <strong>Pull Requests Sekmesi:<\/strong> Ya da &#8220;Pull requests&#8221; sekmesine t\u0131klay\u0131p ard\u0131ndan &#8220;New pull request&#8221; (Yeni \u00e7ekme iste\u011fi) butonuna t\u0131klay\u0131n.<\/p>\n<h4>PR Aray\u00fcz\u00fcn\u00fc Anlama: Base vs. Head<\/h4>\n<p>Pull Request olu\u015fturma sayfas\u0131nda en \u00f6nemli k\u0131s\u0131m, hangi dal\u0131n hangi dala birle\u015ftirilece\u011fini belirtmektir:<\/p>\n<p><em>   <strong>base repository \/ base branch:<\/strong> De\u011fi\u015fikliklerin <\/em>gidece\u011fi* depo ve dald\u0131r. Genellikle orijinal deponun <code>main<\/code> veya <code>master<\/code> dal\u0131 olur.<br \/>\n<em>   <strong>head repository \/ head branch:<\/strong> De\u011fi\u015fikliklerin <\/em>geldi\u011fi* depo ve dald\u0131r. Bu, sizin \u00e7atallanm\u0131\u015f deponuzdaki (veya do\u011frudan \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131z deponuzdaki) yeni olu\u015fturdu\u011funuz dal\u0131n\u0131zd\u0131r.<\/p>\n<p>Do\u011fru dallar\u0131 se\u00e7ti\u011finizden emin olun. \u00d6rne\u011fin, <code>base: main<\/code> ve <code>compare: feature\/add-login-page<\/code> \u015feklinde olmal\u0131d\u0131r.<\/p>\n<h4>Pull Request Formunu Doldurma<\/h4>\n<p>Pull Request formunu doldurmak, inceleme s\u00fcrecini h\u0131zland\u0131rmak ve projenin genel ileti\u015fimini geli\u015ftirmek i\u00e7in \u00e7ok \u00f6nemlidir.<\/p>\n<p>1.  <strong>Ba\u015fl\u0131k (Title):<\/strong><br \/>\n    De\u011fi\u015fikliklerinizi k\u0131sa ve \u00f6z bir \u015fekilde \u00f6zetleyen bir ba\u015fl\u0131k yaz\u0131n. Ne yap\u0131ld\u0131\u011f\u0131n\u0131 a\u00e7\u0131k\u00e7a belirtmelidir.<br \/>\n    \u00d6rnek: <code>feat: Kullan\u0131c\u0131 giri\u015f sayfas\u0131 eklendi ve do\u011frulama iyile\u015ftirildi<\/code><br \/>\n    \u00d6rnek: <code>fix: #123 hatas\u0131 giderildi - giri\u015f formu bo\u015f g\u00f6nderilemiyordu<\/code><\/p>\n<p>2.  <strong>A\u00e7\u0131klama (Description):<\/strong><br \/>\n    Bu k\u0131s\u0131m, Pull Request&#8217;in en \u00f6nemli b\u00f6l\u00fcm\u00fcd\u00fcr. Detayl\u0131 ve anla\u015f\u0131l\u0131r bir a\u00e7\u0131klama sunun:<br \/>\n    *   <strong>Ne Yap\u0131ld\u0131?<\/strong> Yap\u0131lan de\u011fi\u015fiklikleri listeleyin.<br \/>\n    *   <strong>Neden Yap\u0131ld\u0131?<\/strong> Bu de\u011fi\u015fikli\u011fin alt\u0131nda yatan problemi veya hangi \u00f6zelli\u011fi ekledi\u011finizi a\u00e7\u0131klay\u0131n.<br \/>\n    *   <strong>Nas\u0131l Test Edilir?<\/strong> E\u011fer m\u00fcmk\u00fcnse, di\u011fer geli\u015ftiricilerin bu de\u011fi\u015fikli\u011fi nas\u0131l test edebilece\u011fine dair ad\u0131mlar sa\u011flay\u0131n.<br \/>\n    *   <strong>Ekran G\u00f6r\u00fcnt\u00fcleri\/GIF&#8217;ler:<\/strong> UI de\u011fi\u015fiklikleri i\u00e7eriyorsa, ekran g\u00f6r\u00fcnt\u00fcleri veya k\u0131sa GIF&#8217;ler eklemek \u00e7ok faydal\u0131d\u0131r.<br \/>\n    *   <strong>\u0130lgili Sorunlar (Issues):<\/strong> E\u011fer Pull Request bir GitHub sorununu (issue) \u00e7\u00f6z\u00fcyorsa, <code>#issue_numaras\u0131<\/code> format\u0131nda referans verin. \u00d6rne\u011fin, <code>Closes #123<\/code>, <code>Fixes #456<\/code>, <code>Resolves #789<\/code> gibi anahtar kelimeler kullanarak, PR birle\u015ftirildi\u011finde ilgili sorunun otomatik olarak kapanmas\u0131n\u0131 sa\u011flayabilirsiniz.<br \/>\n    *   <strong>Kontrol Listeleri:<\/strong> Yap\u0131lmas\u0131 gereken veya yap\u0131lan i\u015fleri listelemek i\u00e7in kontrol listeleri kullan\u0131n. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-markdown\">- [x] Yeni giri\u015f formu bile\u015feni olu\u015fturuldu.\n        - [x] Alan do\u011frulama (validation) eklendi.\n        - [ ] Kullan\u0131c\u0131 deneyimi testleri yap\u0131ld\u0131.<\/code><\/pre>\n<p>    *   <strong>Kullan\u0131lan Teknolojiler\/Yakla\u015f\u0131mlar:<\/strong> \u00d6zel bir yakla\u015f\u0131m veya teknoloji kulland\u0131ysan\u0131z, bunu a\u00e7\u0131klayabilirsiniz.<\/p>\n<p>3.  <strong>\u0130nceleyiciler (Reviewers):<\/strong><br \/>\n    Proje y\u00f6neticileri veya belirli ekip \u00fcyeleri gibi, kodunuzu incelemesini istedi\u011finiz ki\u015fileri atay\u0131n. Bu, onlar\u0131n PR&#8217;\u0131n\u0131zdan haberdar olmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>4.  <strong>Sorumlular (Assignees):<\/strong><br \/>\n    Bu Pull Request&#8217;in sorumlusu olarak kendinizi veya ba\u015fka birini atayabilirsiniz.<\/p>\n<p>5.  <strong>Etiketler (Labels):<\/strong><br \/>\n    PR&#8217;\u0131n\u0131z\u0131 kategorize etmek i\u00e7in etiketler kullan\u0131n (\u00f6rn. <code>bug<\/code>, <code>feature<\/code>, <code>documentation<\/code>, <code>enhancement<\/code>, <code>work-in-progress<\/code>).<\/p>\n<p>6.  <strong>Kilometre Ta\u015flar\u0131 (Milestones):<\/strong><br \/>\n    E\u011fer projeniz kilometre ta\u015flar\u0131 kullan\u0131yorsa, bu PR&#8217;\u0131 ilgili bir kilometre ta\u015f\u0131na ba\u011flayabilirsiniz.<\/p>\n<p>7.  <strong>Projeler (Projects):<\/strong><br \/>\n    GitHub Projects kullan\u0131yorsan\u0131z, PR&#8217;\u0131n\u0131z\u0131 bir projeye ba\u011flayabilirsiniz.<\/p>\n<h4>Pull Request&#8217;i G\u00f6nderme<\/h4>\n<p>T\u00fcm gerekli bilgileri doldurduktan sonra, &#8220;Create pull request&#8221; (\u00c7ekme iste\u011fi olu\u015ftur) butonuna t\u0131klay\u0131n.<\/p>\n<h3>Pull Request G\u00f6nderildikten Sonra Ne Olur?<\/h3>\n<p>Pull Request&#8217;inizi g\u00f6nderdikten sonra s\u00fcre\u00e7 i\u015fbirli\u011fi ve g\u00f6zden ge\u00e7irme a\u015famas\u0131na girer.<\/p>\n<h4>Kod \u0130ncelemesi (Code Review)<\/h4>\n<p>*   <strong>\u0130nceleyicilerin Rol\u00fc:<\/strong> Atanan inceleyiciler (veya projeyle ilgilenen di\u011fer geli\u015ftiriciler) kodunuzu okur, anlamaya \u00e7al\u0131\u015f\u0131r ve potansiyel sorunlar\u0131, iyile\u015ftirme alanlar\u0131n\u0131 veya alternatif yakla\u015f\u0131mlar\u0131 belirler.<br \/>\n*   <strong>Geri Bildirim:<\/strong> \u0130nceleyiciler, Pull Request sayfas\u0131nda sat\u0131r i\u00e7i yorumlar, \u00f6neriler veya genel yorumlar b\u0131rakabilirler. Bu geri bildirimler, kodun kalitesini art\u0131rmak ve projenin standartlar\u0131na uygunlu\u011funu sa\u011flamak i\u00e7in kritik \u00f6neme sahiptir.<br \/>\n*   <strong>Yap\u0131c\u0131 Geri Bildirim:<\/strong> Hem yorum yapanlar\u0131n hem de yorum alanlar\u0131n yap\u0131c\u0131 bir dil kullanmas\u0131 \u00f6nemlidir. Ama\u00e7, hatay\u0131 de\u011fil, kodu iyile\u015ftirmektir.<\/p>\n<h4>Geri Bildirime Yan\u0131t Verme ve De\u011fi\u015fiklikleri Uygulama<\/h4>\n<p>*   <strong>Ek Komitler:<\/strong> \u0130nceleyicilerden gelen geri bildirimleri ele almak i\u00e7in yerel dal\u0131n\u0131zda ek de\u011fi\u015fiklikler yapman\u0131z gerekebilir. Bu de\u011fi\u015fiklikleri yap\u0131n, komitleyin ve ayn\u0131 dala <code>git push origin [dal-ad\u0131]<\/code> komutuyla tekrar g\u00f6nderin. GitHub, bu yeni komitleri otomatik olarak mevcut Pull Request&#8217;inize ekleyecektir.<br \/>\n*   <strong>Tart\u0131\u015fma:<\/strong> Baz\u0131 durumlarda, geri bildirimle ilgili sorular\u0131n\u0131z olabilir veya bir \u00f6neriye kat\u0131lmayabilirsiniz. Bu durumda, Pull Request sayfas\u0131nda yorum yaparak tart\u0131\u015fmay\u0131 s\u00fcrd\u00fcrebilirsiniz.<\/p>\n<h4>CI\/CD Kontrolleri (CI\/CD Checks)<\/h4>\n<p>Bir\u00e7ok proje, Pull Request&#8217;ler \u00fczerinde otomatik entegrasyon (CI) ve da\u011f\u0131t\u0131m (CD) kontrolleri \u00e7al\u0131\u015ft\u0131r\u0131r. Bunlar \u015funlar\u0131 i\u00e7erebilir:<br \/>\n*   <strong>Otomatik Testler:<\/strong> Birim testleri, entegrasyon testleri vb.<br \/>\n*   <strong>Linting\/Bi\u00e7imlendirme Kontrolleri:<\/strong> Kodun belirli bir stil k\u0131lavuzuna uygunlu\u011funu denetler.<br \/>\n*   <strong>Derleme Kontrolleri:<\/strong> Kodun hatas\u0131z derlenip derlenmedi\u011fini kontrol eder.<br \/>\nBu kontrollerin sonu\u00e7lar\u0131 Pull Request sayfas\u0131nda g\u00f6sterilir ve genellikle t\u00fcm kontroller ge\u00e7meden birle\u015ftirme yap\u0131lamaz.<\/p>\n<h4>Pull Request&#8217;i Birle\u015ftirme (Merging the Pull Request)<\/h4>\n<p>T\u00fcm kod incelemeleri tamamland\u0131\u011f\u0131nda, geri bildirimler ele al\u0131nd\u0131\u011f\u0131nda ve t\u00fcm otomatik kontroller ba\u015far\u0131yla ge\u00e7ti\u011finde, Pull Request birle\u015ftirilmeye haz\u0131r hale gelir.<\/p>\n<p>*   <strong>Kim Birle\u015ftirebilir?<\/strong> Genellikle depo sahipleri, bak\u0131mc\u0131lar\u0131 veya belirli yetkilere sahip geli\u015ftiriciler Pull Request&#8217;leri birle\u015ftirebilir.<br \/>\n*   <strong>Birle\u015ftirme Se\u00e7enekleri:<\/strong> GitHub, Pull Request&#8217;leri birle\u015ftirmek i\u00e7in birka\u00e7 se\u00e7enek sunar:<br \/>\n    *   <strong>Create a merge commit (Birle\u015ftirme komiti olu\u015ftur):<\/strong> Varsay\u0131lan se\u00e7enektir. T\u00fcm komitler korunur ve ana dala bir birle\u015ftirme komiti eklenir.<br \/>\n    *   <strong>Squash and merge (S\u0131k\u0131\u015ft\u0131r ve birle\u015ftir):<\/strong> T\u00fcm komitlerinizi tek bir komitte birle\u015ftirir ve ana dala birle\u015ftirme komiti olarak ekler. Bu, daha temiz bir Git ge\u00e7mi\u015fi sa\u011flar.<br \/>\n    *   <strong>Rebase and merge (Yeniden temellendir ve birle\u015ftir):<\/strong> Dal\u0131n\u0131zdaki komitleri ana dal\u0131n \u00fczerine yeniden temellendirir ve ard\u0131ndan ana dala ekler. Bu, do\u011frusal bir ge\u00e7mi\u015f olu\u015fturur ve birle\u015ftirme komitlerinden ka\u00e7\u0131n\u0131r.<\/p>\n<p>*   <strong>Dal\u0131n Silinmesi:<\/strong> Pull Request birle\u015ftirildikten sonra, GitHub genellikle size orijinal dal\u0131 silme se\u00e7ene\u011fi sunar. Bu iyi bir uygulamad\u0131r, \u00e7\u00fcnk\u00fc kullan\u0131lmayan dallar\u0131n birikmesini \u00f6nler ve deponuzu temiz tutar.<\/p>\n<h3>Geli\u015fmi\u015f Pull Request Senaryolar\u0131 ve En \u0130yi Uygulamalar<\/h3>\n<p>Pull Request s\u00fcrecini daha verimli hale getirmek i\u00e7in baz\u0131 geli\u015fmi\u015f teknikler ve en iyi uygulamalar mevcuttur.<\/p>\n<h4>Dal\u0131n\u0131z\u0131 G\u00fcncel Tutma<\/h4>\n<p>Uzun s\u00fcren bir geli\u015ftirme dal\u0131nda \u00e7al\u0131\u015f\u0131rken, ana dalda (\u00f6rn. <code>main<\/code>) ba\u015fkalar\u0131 taraf\u0131ndan yap\u0131lan yeni de\u011fi\u015fiklikler olabilir. Kendi dal\u0131n\u0131z\u0131 g\u00fcncel tutmak, potansiyel birle\u015ftirme \u00e7ak\u0131\u015fmalar\u0131n\u0131 \u00f6nlemeye yard\u0131mc\u0131 olur.<\/p>\n<p>*   <strong>Orijinal Depoyu Uzak Olarak Ekleme (Sadece \u00e7atallanm\u0131\u015f depolar i\u00e7in):<\/strong><br \/>\n    E\u011fer bir depoyu \u00e7atallad\u0131ysan\u0131z, orijinal depoyu &#8220;upstream&#8221; olarak eklemeniz gerekebilir:<\/p>\n<pre><code class=\"language-bash\">git remote add upstream https:\/\/github.com\/orijinal_kullanici\/orijinal_proje.git<\/code><\/pre>\n<p>*   <strong>G\u00fcncellemeleri \u00c7ekme:<\/strong><\/p>\n<pre><code class=\"language-bash\">git fetch upstream # Orijinal depodan en son de\u011fi\u015fiklikleri \u00e7eker\n    git checkout main # Ana dala ge\u00e7i\u015f yap\u0131n\n    git merge upstream\/main # Orijinal ana daldaki de\u011fi\u015fiklikleri kendi ana dal\u0131n\u0131za birle\u015ftirin\n    git checkout feature\/your-branch # Kendi geli\u015ftirme dal\u0131n\u0131za geri d\u00f6n\u00fcn\n    git rebase main # Kendi dal\u0131n\u0131z\u0131 g\u00fcncel ana dal\u0131n \u00fczerine yeniden temellendirin\n    # veya\n    git merge main # Kendi dal\u0131n\u0131za g\u00fcncel ana dal\u0131 birle\u015ftirin<\/code><\/pre>\n<p>    <code>rebase<\/code> kullanmak genellikle daha temiz bir ge\u00e7mi\u015f sa\u011flar, ancak dikkatli kullan\u0131lmal\u0131d\u0131r. E\u011fer dal\u0131n\u0131z\u0131 ba\u015fkalar\u0131yla payla\u015ft\u0131ysan\u0131z, <code>rebase<\/code> yerine <code>merge<\/code> kullanmak daha g\u00fcvenlidir.<\/p>\n<h4>Taslak Pull Request&#8217;ler (Draft Pull Requests)<\/h4>\n<p>GitHub, \u00fczerinde hala \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131z ancak erken geri bildirim almak istedi\u011finiz Pull Request&#8217;ler i\u00e7in &#8220;Draft Pull Request&#8221; \u00f6zelli\u011fini sunar.<\/p>\n<p>*   <strong>Nas\u0131l Olu\u015fturulur?<\/strong> Pull Request olu\u015ftururken &#8220;Create draft pull request&#8221; se\u00e7ene\u011fini i\u015faretleyebilirsiniz.<br \/>\n*   <strong>Ne Zaman Kullan\u0131l\u0131r?<\/strong> Hen\u00fcz tamamlanmam\u0131\u015f bir \u00f6zellik \u00fczerinde \u00e7al\u0131\u015f\u0131rken, tasar\u0131m kararlar\u0131n\u0131 tart\u0131\u015fmak veya erken a\u015famada mimari geri bildirim almak istedi\u011finizde kullan\u0131\u015fl\u0131d\u0131r.<br \/>\n*   <strong>Haz\u0131r Hale Getirme:<\/strong> \u00c7al\u0131\u015fman\u0131z bitti\u011finde, &#8220;Ready for review&#8221; (\u0130ncelemeye haz\u0131r) butonuna t\u0131klayarak taslak PR&#8217;\u0131 normal bir PR&#8217;a d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz.<\/p>\n<h4>Pull Request \u015eablonlar\u0131 (PR Templates) Kullanma<\/h4>\n<p>Projenizde standart bir Pull Request a\u00e7\u0131klamas\u0131 format\u0131 sa\u011flamak i\u00e7in PR \u015fablonlar\u0131 kullanabilirsiniz.<\/p>\n<p>*   <strong>Nas\u0131l Olu\u015fturulur?<\/strong> Deponuzun <code>.github<\/code> dizini alt\u0131na <code>PULL_REQUEST_TEMPLATE.md<\/code> ad\u0131nda bir dosya olu\u015fturun. Bu dosyan\u0131n i\u00e7eri\u011fi, yeni bir PR olu\u015fturuldu\u011funda otomatik olarak a\u00e7\u0131klama alan\u0131na y\u00fcklenecektir.<br \/>\n*   <strong>Faydalar\u0131:<\/strong> Tutarl\u0131l\u0131k sa\u011flar, gerekli bilgilerin atlanmamas\u0131n\u0131 garanti eder ve inceleme s\u00fcrecini h\u0131zland\u0131r\u0131r.<\/p>\n<h4>Komitleri S\u0131k\u0131\u015ft\u0131rma (Squashing Commits)<\/h4>\n<p>E\u011fer geli\u015ftirme dal\u0131n\u0131zda \u00e7ok say\u0131da k\u00fc\u00e7\u00fck, d\u00fczeltme veya &#8220;WIP&#8221; (Work In Progress) komitleriniz varsa, Pull Request&#8217;i birle\u015ftirmeden \u00f6nce bunlar\u0131 tek bir anlaml\u0131 komitte birle\u015ftirmek (s\u0131k\u0131\u015ft\u0131rmak) iyi bir uygulamad\u0131r. Bu, ana dal\u0131n ge\u00e7mi\u015fini daha temiz ve okunabilir tutar.<\/p>\n<p>*   <strong>Nas\u0131l Yap\u0131l\u0131r?<\/strong> <code>git rebase -i HEAD~N<\/code> komutunu kullanarak interaktif rebase yapabilirsiniz (burada N, s\u0131k\u0131\u015ft\u0131rmak istedi\u011finiz komit say\u0131s\u0131d\u0131r).<br \/>\n*   <strong>GitHub \u00dczerinden:<\/strong> GitHub&#8217;\u0131n birle\u015ftirme se\u00e7eneklerinde &#8220;Squash and merge&#8221; se\u00e7ene\u011fi de bulunur.<\/p>\n<h3>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<p>Pull Request olu\u015fturma s\u00fcrecinde baz\u0131 yayg\u0131n sorunlarla kar\u015f\u0131la\u015fabilirsiniz.<\/p>\n<h4>Birle\u015ftirme \u00c7ak\u0131\u015fmalar\u0131 (Merge Conflicts)<\/h4>\n<p>*   <strong>Nas\u0131l Ortaya \u00c7\u0131kar?<\/strong> Hem sizin dal\u0131n\u0131zda hem de ana dalda ayn\u0131 dosyan\u0131n ayn\u0131 sat\u0131rlar\u0131nda farkl\u0131 de\u011fi\u015fiklikler yap\u0131ld\u0131\u011f\u0131nda birle\u015ftirme \u00e7ak\u0131\u015fmalar\u0131 meydana gelir.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> \u00c7ak\u0131\u015fmalar\u0131 yerel olarak \u00e7\u00f6zmeniz gerekir. <code>git pull origin main<\/code> veya <code>git rebase main<\/code> komutlar\u0131n\u0131 kullanarak ana daldaki de\u011fi\u015fiklikleri kendi dal\u0131n\u0131za \u00e7ekin. Git, \u00e7ak\u0131\u015fan dosyalar\u0131 i\u015faretleyecektir. Bu dosyalar\u0131 manuel olarak d\u00fczenleyerek \u00e7ak\u0131\u015fmalar\u0131 \u00e7\u00f6z\u00fcn, ard\u0131ndan <code>git add<\/code> ve <code>git commit<\/code> ile de\u011fi\u015fiklikleri kaydedin ve tekrar <code>git push<\/code> yap\u0131n.<\/p>\n<h4>Yanl\u0131\u015f Base\/Head Dallar<\/h4>\n<p>*   <strong>Sorun:<\/strong> Pull Request&#8217;i olu\u015ftururken yanl\u0131\u015f <code>base<\/code> veya <code>head<\/code> dal\u0131n\u0131 se\u00e7mek. \u00d6rne\u011fin, <code>feature\/A<\/code> dal\u0131ndan <code>feature\/B<\/code> dal\u0131na bir PR a\u00e7mak yerine, <code>main<\/code> dal\u0131na a\u00e7mak istemek.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> PR olu\u015fturma ekran\u0131nda dallar\u0131 dikkatlice kontrol edin. Yanl\u0131\u015fl\u0131kla olu\u015fturduysan\u0131z, Pull Request&#8217;i kapatabilir ve do\u011fru dallarla yeniden olu\u015fturabilirsiniz.<\/p>\n<h4>CI\/CD Kontrollerinin Ba\u015far\u0131s\u0131z Olmas\u0131<\/h4>\n<p>*   <strong>Sorun:<\/strong> Otomatik testler, linting veya derleme kontrollerinin ba\u015far\u0131s\u0131z olmas\u0131.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> GitHub&#8217;daki Pull Request sayfas\u0131nda ba\u015far\u0131s\u0131z olan kontrol\u00fcn detaylar\u0131n\u0131 inceleyin. Genellikle loglarda hatan\u0131n nedenini bulabilirsiniz. Yerel makinenizde hatay\u0131 d\u00fczeltin, komitleyin ve tekrar g\u00f6nderin.<\/p>\n<h4>B\u00fcy\u00fck Pull Request&#8217;ler<\/h4>\n<p>*   <strong>Sorun:<\/strong> Tek bir Pull Request&#8217;te \u00e7ok fazla de\u011fi\u015fiklik olmas\u0131, incelemeyi zorla\u015ft\u0131r\u0131r ve hata olas\u0131l\u0131\u011f\u0131n\u0131 art\u0131r\u0131r.<br \/>\n*   <strong>\u00c7\u00f6z\u00fcm:<\/strong> De\u011fi\u015fikliklerinizi daha k\u00fc\u00e7\u00fck, mant\u0131ksal olarak ba\u011f\u0131ms\u0131z Pull Request&#8217;lere b\u00f6l\u00fcn. Her PR&#8217;\u0131n tek bir amaca hizmet etmesini sa\u011flay\u0131n. Bu, incelemeyi kolayla\u015ft\u0131r\u0131r ve birle\u015ftirme s\u00fcrecini h\u0131zland\u0131r\u0131r.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>GitHub&#8217;da Pull Request olu\u015fturmak, modern yaz\u0131l\u0131m geli\u015ftirme ekipleri ve a\u00e7\u0131k kaynak topluluklar\u0131 i\u00e7in temel bir i\u015fbirli\u011fi mekanizmas\u0131d\u0131r. Bu s\u00fcre\u00e7, kod kalitesini art\u0131r\u0131r, \u015feffafl\u0131\u011f\u0131 sa\u011flar ve geli\u015ftiricilerin daha verimli bir \u015fekilde birlikte \u00e7al\u0131\u015fmas\u0131na olanak tan\u0131r. Ba\u015flang\u0131\u00e7ta karma\u015f\u0131k gibi g\u00f6r\u00fcnse de, ad\u0131m ad\u0131m ilerleyerek ve yukar\u0131da bahsedilen en iyi uygulamalar\u0131 takip ederek bu s\u00fcrece kolayca hakim olabilirsiniz.<\/p>\n<p>Unutmay\u0131n, iyi bir Pull Request sadece \u00e7al\u0131\u015fan koddan ibaret de\u011fildir; ayn\u0131 zamanda net bir ba\u015fl\u0131k, detayl\u0131 bir a\u00e7\u0131klama ve ba\u015fkalar\u0131 taraf\u0131ndan kolayca anla\u015f\u0131labilen ve incelenebilen, mant\u0131ksal olarak d\u00fczenlenmi\u015f komitler i\u00e7erir. Her Pull Request, hem sizin hem de projenin b\u00fcy\u00fcmesine katk\u0131da bulunan bir \u00f6\u011frenme ve i\u015fbirli\u011fi f\u0131rsat\u0131d\u0131r. Bu beceriyi ustala\u015fmak, sizi daha etkili bir geli\u015ftirici ve daha de\u011ferli bir ekip \u00fcyesi yapacakt\u0131r. Art\u0131k GitHub&#8217;da bir sonraki projenize katk\u0131da bulunmak i\u00e7in gerekli bilgiye sahipsiniz. Ba\u015far\u0131lar!<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"GitHub&#8217;da Pull Request Nas\u0131l Olu\u015fturulur?\nGitHub, modern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinin vazge\u00e7ilmez bir par\u00e7as\u0131 haline gelmi\u015f, d\u00fcnyan\u0131n","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-36192","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>GitHub&#039;da Pull Request Nas\u0131l Olu\u015fturulur? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\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\/githubda-pull-request-nasil-olusturulur\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GitHub&#039;da Pull Request Nas\u0131l Olu\u015fturulur?\" \/>\n<meta property=\"og:description\" content=\"GitHub&#039;da Pull Request Nas\u0131l Olu\u015fturulur? GitHub, modern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinin vazge\u00e7ilmez bir par\u00e7as\u0131 haline gelmi\u015f, d\u00fcnyan\u0131n\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/githubda-pull-request-nasil-olusturulur\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-09T21:40:49+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=\"18 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/githubda-pull-request-nasil-olusturulur\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/githubda-pull-request-nasil-olusturulur\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"GitHub&#8217;da Pull Request Nas\u0131l Olu\u015fturulur?\",\"datePublished\":\"2025-12-09T21:40:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/githubda-pull-request-nasil-olusturulur\/\"},\"wordCount\":3443,\"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\/githubda-pull-request-nasil-olusturulur\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/githubda-pull-request-nasil-olusturulur\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/githubda-pull-request-nasil-olusturulur\/\",\"name\":\"GitHub'da Pull Request Nas\u0131l Olu\u015fturulur? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-09T21:40:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/githubda-pull-request-nasil-olusturulur\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/githubda-pull-request-nasil-olusturulur\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/githubda-pull-request-nasil-olusturulur\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GitHub&#8217;da Pull Request Nas\u0131l Olu\u015fturulur?\"}]},{\"@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":"GitHub'da Pull Request Nas\u0131l Olu\u015fturulur? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","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\/githubda-pull-request-nasil-olusturulur\/","og_locale":"tr_TR","og_type":"article","og_title":"GitHub'da Pull Request Nas\u0131l Olu\u015fturulur?","og_description":"GitHub'da Pull Request Nas\u0131l Olu\u015fturulur? GitHub, modern yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinin vazge\u00e7ilmez bir par\u00e7as\u0131 haline gelmi\u015f, d\u00fcnyan\u0131n","og_url":"https:\/\/fatihsoysal.com\/blog\/githubda-pull-request-nasil-olusturulur\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-09T21:40:49+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"18 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/githubda-pull-request-nasil-olusturulur\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/githubda-pull-request-nasil-olusturulur\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"GitHub&#8217;da Pull Request Nas\u0131l Olu\u015fturulur?","datePublished":"2025-12-09T21:40:49+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/githubda-pull-request-nasil-olusturulur\/"},"wordCount":3443,"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\/githubda-pull-request-nasil-olusturulur\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/githubda-pull-request-nasil-olusturulur\/","url":"https:\/\/fatihsoysal.com\/blog\/githubda-pull-request-nasil-olusturulur\/","name":"GitHub'da Pull Request Nas\u0131l Olu\u015fturulur? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-09T21:40:49+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/githubda-pull-request-nasil-olusturulur\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/githubda-pull-request-nasil-olusturulur\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/githubda-pull-request-nasil-olusturulur\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"GitHub&#8217;da Pull Request Nas\u0131l Olu\u015fturulur?"}]},{"@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\/36192","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=36192"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36192\/revisions"}],"predecessor-version":[{"id":36193,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36192\/revisions\/36193"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=36192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=36192"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=36192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}