{"id":170,"date":"2019-09-30T22:23:20","date_gmt":"2019-09-30T19:23:20","guid":{"rendered":"http:\/\/www.potansif.com\/?p=170"},"modified":"2019-10-01T16:41:48","modified_gmt":"2019-10-01T13:41:48","slug":"delphi-ve-github-entegrasyonu-nasil-yapilir","status":"publish","type":"post","link":"http:\/\/www.potansif.com\/?p=170","title":{"rendered":"Delphi ve Github Entegrasyonu Nas\u0131l Yap\u0131l\u0131r"},"content":{"rendered":"<p>Hepimizin malumudur, birden \u00e7ok lokasyonda \u00e7al\u0131\u015fma durumumuz veya birden \u00e7ok bilgisayarda kendi projelerimizi kodlamam\u0131z gerekebiliyor. Mesela bazen evden bazen i\u015f yerinden, bazen masa\u00fcst\u00fc bazen de diz\u00fcst\u00fc bilgisayardan \u00e7al\u0131\u015fmak durumunda kalabiliyoruz. Bu da yetmezmi\u015f gibi bazen baz\u0131 projelerde birden \u00e7ok kat\u0131l\u0131mc\u0131n\u0131n oldu\u011fu, ekiplerin oldu\u011fu durumlar da ya\u015fanabiliyor. <!--more-->B\u00f6yle kaotik bir \u00e7al\u0131\u015fma i\u00e7indeyseniz ister istemez kaynak kodlar\u0131n\u0131z\u0131n her yerden eri\u015filebilir olmas\u0131 bir fanteziden \u00f6te ge\u00e7ip ihtiya\u00e7 halini alabiliyor. Forumda baz\u0131 benzer yaz\u0131lara rastlad\u0131m fakat bu konunun biraz daha detayland\u0131r\u0131lmas\u0131 gerekti\u011fini d\u00fc\u015f\u00fcnd\u00fc\u011f\u00fcm i\u00e7in konuyu bir makale olarak ele alman\u0131n yeridir deyip bu yaz\u0131y\u0131 haz\u0131rlad\u0131m.<\/p>\n<p>Bu konu, RAD Studio (Tokyo) bir Windows \u00fcr\u00fcn\u00fc oldu\u011fu i\u00e7in do\u011fal olarak Windows temel al\u0131narak anlat\u0131lacakt\u0131r. Dolay\u0131s\u0131yla bu makale Windows d\u0131\u015f\u0131ndaki i\u015fletim sistemleri ile ilgili bilgiler i\u00e7ermemektedir fakat baz\u0131 ad\u0131mlar di\u011fer i\u015fletim sistemlerinde de benzer \u015fekilde yap\u0131labilir. \u00d6zellikle komut sat\u0131r\u0131 ve BASH kullan\u0131m\u0131 buna \u00f6rnek verilebilir.<\/p>\n<p>Bu makalede anlat\u0131lan konu RAD Studio (C++ a\u00e7\u0131s\u0131ndan) ve AppMethod ile de benzerlik g\u00f6sterir, dolay\u0131s\u0131yla bu teknikleri oralarda da kullanabilirsiniz.<\/p>\n<p>Hedef basit ama s\u00fcre\u00e7 karma\u015f\u0131k oldu\u011fu i\u00e7in k\u0131sa bir makale yazma imk\u00e2n\u0131m\u0131z maalesef yok, o nedenle sab\u0131rla makaleyi sonuna kadar okuman\u0131z\u0131 \u00f6neririm.<\/p>\n<h1>Nedir, Neden?<\/h1>\n<p>Git, bilgisayar dosyalar\u0131ndaki de\u011fi\u015fiklikleri izlemek ve bunlar \u00fczerindeki \u00e7al\u0131\u015fmay\u0131 birden \u00e7ok ki\u015fi aras\u0131nda koordine etmek i\u00e7in kullan\u0131lan bir s\u00fcr\u00fcm kontrol sistemidir. Esasen Linus TORVALDS taraf\u0131ndan 2005 y\u0131l\u0131nda Linux \u00e7ekirde\u011finin geli\u015ftirilmesi s\u0131ras\u0131nda ya\u015fanan koordinasyonsuzluklar\u0131n bir sonucu olarak \u00fcretilmi\u015f ve di\u011fer \u00e7ekirdek geli\u015ftiricileri ile e\u015fg\u00fcd\u00fcm\u00fc sa\u011flamak \u00fczere tasarlanm\u0131\u015ft\u0131r.<\/p>\n<p>\u00c7o\u011fu da\u011f\u0131t\u0131lm\u0131\u015f (ve genelde \u00fccretli) s\u00fcr\u00fcm kontrol sisteminde oldu\u011fu gibi ve \u00e7o\u011fu istemci \u2013 sunucu sisteminin \u201ctersine\u201d proje klas\u00f6rlerimizdeki her \u201c.git\u201d dizini, a\u011f eri\u015fiminden veya merkezi bir sunucudan \u201cba\u011f\u0131ms\u0131z\u201d olarak eksiksiz bir ge\u00e7mi\u015f bilgisine ve tam s\u00fcr\u00fcm izleme yeteneklerine sahip tam te\u015fekk\u00fcll\u00fc bir havuzdur. Yani en az iki ki\u015finin ayn\u0131 projede \u00e7al\u0131\u015f\u0131yor oldu\u011funu varsayd\u0131\u011f\u0131m\u0131zda s\u00f6z konusu projenin en az 3 adet \u201ctam te\u015fekk\u00fcll\u00fc\u201d (2\u2019si proje kat\u0131l\u0131mc\u0131lar\u0131nda ve 1\u2019i de github sisteminde olmak \u00fczere) birer kopyas\u0131 vard\u0131r demektir. Bu noktada github.com\u2019daki projenin konumu ise proje kat\u0131l\u0131mc\u0131lar\u0131 aras\u0131ndaki ortak havuz olma rol\u00fcn\u00fc \u00fcstlenir. Bu yap\u0131, projeye dahil olan herkesin kendi depolar\u0131nda her istedi\u011fini yapabilece\u011fi, ayn\u0131 zamanda yapt\u0131klar\u0131 her de\u011fi\u015fikli\u011fin as\u0131l projeyi etkilemeden, kontroll\u00fc bir \u015fekilde birbiriyle payla\u015fabilece\u011fi anlam\u0131na gelmektedir. Bunu, yani e\u015fg\u00fcd\u00fcm\u00fc de projenin kat\u0131l\u0131mc\u0131lar\u0131 \u201ccommit\u201d ve \u201cpush\u201d mekanizmalar\u0131yla ger\u00e7ekle\u015ftirirler.<\/p>\n<h1>Git ve RAD Studio aras\u0131ndaki Mekanizma<\/h1>\n<p>Yaz\u0131n\u0131n devam\u0131nda da anlat\u0131laca\u011f\u0131 \u00fczere RAD Studio ve GIT s\u00fcr\u00fcm kontrol sistemi asl\u0131nda arka tarafta BASH denen bir kabuk uygulamay\u0131 kullan\u0131r. Bash asl\u0131nda Unix sistemlerinde kullan\u0131lan ve Windows\u2019daki DOS komut sistemine denk gelen bir yap\u0131ya \u201cbenzer\u201d. Asl\u0131nda yapt\u0131\u011f\u0131 i\u015f (<b>uzaktaki sistemler&nbsp;de&nbsp;dahil olmak \u00fczere<\/b>)&nbsp;komutlar\u0131 yorumlamak ve \u00e7al\u0131\u015ft\u0131rmakt\u0131r. BASH ve di\u011fer Unix kabuklar\u0131 i\u00e7in a\u015fa\u011f\u0131daki linkten daha fazla bilgi edinebilirsiniz. Bizim a\u00e7\u0131m\u0131zdan RAD Studio ve git sistemi aras\u0131ndaki ba\u011flant\u0131y\u0131 BASH denen bu kabu\u011fun arka planda yapt\u0131\u011f\u0131n\u0131 bilmemiz yeterli olacakt\u0131r.<\/p>\n<p><a href=\"http:\/\/web.deu.edu.tr\/doc\/lis\/lis-6.html\">http:\/\/web.deu.edu.tr\/doc\/lis\/lis-6.html<\/a><\/p>\n<h1>Git Sisteminin Kurulmas\u0131<\/h1>\n<p>\u00d6ncelikle \u015fu ( [url=https:\/\/git-scm.com\/download\/win]https:\/\/git-scm.com\/download\/win[\/url] ) ba\u011flant\u0131dan GIT uygulamas\u0131 indirip kurulum program\u0131n\u0131n y\u00f6nergelerini hi\u00e7 sorgulamadan (konuyu da\u011f\u0131tmamak ad\u0131na) NEXT, NEXT, NEXT \u015feklinde h\u0131zl\u0131ca kuruyoruz. Kurulum BASH kabu\u011fu ile birlikte GIT i\u00e7in gerekli olan t\u00fcm altyap\u0131sal yaz\u0131l\u0131mlar\u0131 sisteminize kuracakt\u0131r.<\/p>\n<p>Kurulumdan sonra GIT uygulamas\u0131n\u0131n kurulu oldu\u011fu klas\u00f6r\u00fc tespit ediyoruz ve bir kenara not ediyoruz. Varsay\u0131lan olarak (kurulum s\u0131ras\u0131nda aksini belirtmediyseniz) sizin sisteminizde de a\u015fa\u011f\u0131daki gibi bir yere kurulmu\u015ftur.<\/p>\n<pre><code>\r\n \tC:\\Program Files\\Git\\bin\\git.exe\r\n<\/code><\/pre>\n<p>CMD dizininde git-gui.exe arac\u0131 da yer al\u0131r. Biz anlat\u0131m\u0131m\u0131zda herhangi bir GUI arabirimini i\u015fin i\u00e7ine katmayaca\u011f\u0131z ve komutlar\u0131m\u0131z\u0131 konsol \u00fczerinden ger\u00e7ekle\u015ftirece\u011fiz.<\/p>\n<p>Bu noktada DOS komut sat\u0131r\u0131ndaki kullan\u0131mlar\u0131m\u0131z i\u00e7in bu klas\u00f6r\u00fcn adresini Windows\u2019un <b>PATH<\/b> listesine eklememiz gerekiyor, bunun i\u00e7in <b>Denetim masas\u0131 &gt; Sistem &gt; Geli\u015fmi\u015f Sistem Ayarlar\u0131<\/b> ba\u011flant\u0131s\u0131n\u0131 a\u00e7\u0131yoruz.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-548 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/1GrgBD1.png\" alt=\"\" width=\"487\" height=\"219\"><\/p>\n<p>Ard\u0131ndan kar\u015f\u0131m\u0131za \u00e7\u0131kan \u201c<b>Ortam De\u011fi\u015fkenleri<\/b>\u201d ba\u015fl\u0131kl\u0131 pencerenin alt b\u00f6lmesindeki listeden PATH de\u011fi\u015fkenini bulup a\u015fa\u011f\u0131daki d\u00fczenle butonuna bas\u0131yoruz. Akabinde a\u00e7\u0131lan \u201c<b>Ortam De\u011fi\u015fkenini D\u00fczenle<\/b>\u201d penceresinde yeni butonuna bas\u0131p listenin en sonuna a\u015fa\u011f\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcndeki gibi git.exe\u2019nin bulundu\u011fu klas\u00f6r\u00fc ekliyoruz ve <b>TAMAM <\/b>ile pencereleri kapat\u0131yoruz.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-549 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/mJ5kpV1.png\" alt=\"\" width=\"618\" height=\"585\">&nbsp;<img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-550 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/LOEn011.png\" alt=\"\" width=\"527\" height=\"501\"><\/p>\n<p>&nbsp;<\/p>\n<p>Kald\u0131\u011f\u0131m\u0131z yerden devam edecek olursak,&nbsp;GIT Uygulamas\u0131 kuruldu\u011funda masa\u00fcst\u00fcne \u201cGit Bash\u201d adl\u0131 bir simge ekleyecektir. Bu simgeyi a\u00e7arak Bash konsolunu \u00e7al\u0131\u015ft\u0131r\u0131yoruz. Bu noktada s\u0131ras\u0131yla a\u015fa\u011f\u0131daki iki sat\u0131r komutu \u00e7al\u0131\u015ft\u0131r\u0131yoruz; (\u00e7ift t\u0131rnaklar hari\u00e7)<\/p>\n<pre><code>\r\n \tgit config --global user.name \u201cG\u0130TTEK\u0130KULLANICIADINIZ\u201d\r\n \tgit config --global user.email \u201cG\u0130TTEK\u0130@EPOSTA.ADRES\u0130N\u0130Z\u201d\r\n<\/code><\/pre>\n<p>Ard\u0131ndan ayarlar\u0131m\u0131z\u0131n do\u011fru bir \u015fekilde kaydedilip kaydedilmedi\u011fini teyit etmek, do\u011frulamak i\u00e7in a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131p devam\u0131ndaki listeyi inceliyoruz. Yukar\u0131da ekledi\u011fimiz iki sat\u0131r parametre, s\u00f6z konusu listenin muhtemelen en alt iki sat\u0131r\u0131nda yer alacakt\u0131r.<\/p>\n<pre><code>\r\n \tgit config --list\r\n<\/code><\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-551 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/XEJXjR1.png\" alt=\"\" width=\"504\" height=\"483\"><\/p>\n<p>Yukar\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcnde de g\u00f6r\u00fclece\u011fi \u00fczere listenin en alt\u0131nda yer alan iki adet parametreye dikkat edelim. Do\u011fru i\u015flenmemi\u015fse git config parametrelerini d\u00fczg\u00fcn \u015fekilde yeniden \u00e7al\u0131\u015ft\u0131ral\u0131m ve yeniden kontrol edelim. Yukar\u0131daki g\u00f6r\u00fcnt\u00fcde benim kullan\u0131c\u0131 ad\u0131m ve benim eposta adresim \u00f6rnek olarak verilmi\u015ftir.<\/p>\n<h1>RAD Studio\u2019daki Git Ayarlar\u0131<\/h1>\n<p>E\u011fer yazd\u0131\u011f\u0131m\u0131z parametreler s\u00f6z konusu listede d\u00fczg\u00fcn bir \u015fekilde kaydedilmi\u015fse RAD Studio\u2019yu \u00e7al\u0131\u015ft\u0131r\u0131yoruz.&nbsp;A\u00e7\u0131ld\u0131\u011f\u0131nda <b>Tools &gt; Options<\/b> men\u00fcs\u00fcnden veya <b>IDE Insight<\/b> arama \u00e7ubu\u011funa \u201c<b>Git page<\/b>\u201d yazarak \u201c<b>Options<\/b>\u201d ba\u015fl\u0131kl\u0131 ekran\u0131 a\u00e7\u0131yoruz;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-552 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/JO6lJY1.png\" alt=\"\" width=\"736\" height=\"702\"><\/p>\n<p>Bu ekran g\u00f6r\u00fcnt\u00fcs\u00fcnde \u201c<b>1<\/b>\u201d ile vurgulanan k\u0131sma \u201c<b>git.exe<\/b>\u201dnin tam yolunu yaz\u0131yoruz. Ekran\u0131n en alt\u0131nda yer alan \u201c<b>User Identification Data<\/b>\u201d k\u0131sm\u0131na da Bash\u2019ta da yazd\u0131\u011f\u0131m\u0131z gibi github kullan\u0131c\u0131 ad\u0131n\u0131 ve githup\u2019da kulland\u0131\u011f\u0131m\u0131z eposta adresini yaz\u0131yoruz.<\/p>\n<p>RAD Studio\u2019ya Git entegrasyonunu bu \u015fekilde yapm\u0131\u015f olduk. Bu noktadan sonras\u0131nda ise bu senkronizasyon, e\u015fle\u015ftirme, k\u0131yaslama, yay\u0131nlama ve yay\u0131ndan \u00e7ekme gibi konular yaz\u0131n\u0131n devam\u0131nda anlat\u0131lmaktad\u0131r. Buraya kadar anlat\u0131lan konular\u0131 sadece bir kere yapmak yeterlidir. Bu noktadan sonra anlat\u0131lacak olan ayarlar her git projesi i\u00e7in ayr\u0131 ayr\u0131 yap\u0131lmal\u0131d\u0131r.<\/p>\n<h1>Basit Bir Proje<\/h1>\n<p>\u00d6rnek olmas\u0131 a\u00e7\u0131s\u0131ndan ve t\u00fcm ad\u0131mlar\u0131 tamamen g\u00f6sterebilmek ad\u0131na RAD Studio\u2019da bo\u015f bir proje olu\u015fturmakla i\u015fe ba\u015flayal\u0131m. Hepimizin bildi\u011fi gibi standart bir VCL Application olu\u015ftural\u0131m; (&nbsp;<b>Bu noktada projenin t\u00fcr\u00fcn\u00fcn ve ne oldu\u011funun hi\u00e7 bir \u00f6nemi yok<\/b> )<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-553 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/nJ2W3V1.png\" alt=\"\" width=\"672\" height=\"397\"><\/p>\n<p>Ard\u0131ndan bo\u015f unitimizi (<b>Unit1.pas<\/b> ve <b>Unit1.dfm<\/b>) bu haliyle hemen kaydedelim. Devam\u0131nda projemizi de (<b>gittestprojesi.dpr<\/b>) pe\u015finden kaydedelim.<\/p>\n<h1>Proje \u0130\u00e7in Yerel bir Git Deposu Olu\u015fturulmas\u0131<\/h1>\n<p>Projemizi kaydettikten sonra DOS komut sat\u0131r\u0131n\u0131 y\u00f6netici kipinde \u00e7al\u0131\u015ft\u0131r\u0131yoruz ve ard\u0131ndan proje dosyalar\u0131m\u0131z\u0131n oldu\u011fu klas\u00f6re giriyoruz. <span style=\"color: #ff6600;\"><b>Projemizin klas\u00f6r\u00fcndeyken<\/b><\/span>&nbsp;a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131yoruz;<\/p>\n<pre><code>\r\n \tgit init\r\n<\/code><\/pre>\n<p>Bu komut, projemizin oldu\u011fu klas\u00f6re &#8220;<b>.git<\/b>&#8221; ad\u0131nda gizli bir klas\u00f6r olu\u015fturacak ve bunu bir repository&#8217;e (depoya) d\u00f6n\u00fc\u015ft\u00fcrecektir. Bu klas\u00f6r\u00fc komut sat\u0131r\u0131nda&nbsp;DIR \u00e7ekti\u011finizde g\u00f6remeyebilirsiniz fakat&nbsp;komut ba\u015far\u0131l\u0131 bir \u015fekilde \u00e7al\u0131\u015fm\u0131\u015fsa konsola a\u015fa\u011f\u0131daki gibi bir mesaj yans\u0131yacakt\u0131r.<\/p>\n<pre><code>\r\n \t\u201cInitialized empty Git repository in C:\/Dev\/Delphi\/ProjTokyo\/TESTLER\/gittest\/.git\/\u201d\r\n<\/code><\/pre>\n<p>T\u0131pk\u0131 a\u015fa\u011f\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcnde de g\u00f6sterildi\u011fi gibi\u2026<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-554 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/g9yWQO1.png\" alt=\"\" width=\"986\" height=\"348\"><\/p>\n<p>Bu noktaya kadar ba\u015far\u0131l\u0131 bir \u015fekilde ula\u015ft\u0131ysak projemiz i\u00e7in yerel olarak bir Git havuzu olu\u015fturabildik demektir. Yani projemizin oldu\u011fu klas\u00f6r\u00fc incelersek \u201c<b>.git<\/b>\u201d adl\u0131 \u201c<b>gizli<\/b>\u201d bir klas\u00f6r olu\u015fturuldu\u011funu g\u00f6receksinizdir.<\/p>\n<p>Art\u0131k elimizde yerel bir havuz oldu\u011funa g\u00f6re bunu RAD Studio \u00fczerinden nas\u0131l y\u00f6netebilece\u011fimizin yollar\u0131n\u0131 kullanabilir duruma geldik say\u0131l\u0131r.<\/p>\n<h1>Git Men\u00fcs\u00fcn\u00fcn Detaylar\u0131<\/h1>\n<p>Yeri gelmi\u015fken Git men\u00fcs\u00fcndeki \u00f6\u011felerin ne i\u015fe yarad\u0131\u011f\u0131ndan bu noktada k\u0131saca bahsetmek yerinde olacakt\u0131r.<\/p>\n<pre><code>\r\n \t<b>Commit<\/b> : De\u011fi\u015fikliklerin yerel depoya veya github\u2019daki depoya i\u015flenmesini sa\u011flar.\r\n \t<b>Push<\/b> : Proje dosyalar\u0131n\u0131n github deposuna aktar\u0131lmas\u0131n\u0131 veya github deposundan yerel depoya aktar\u0131lmas\u0131n\u0131 sa\u011flar\r\n \t<b>Show Log<\/b> : Yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fiklikler ile ilgili log bilgilerini yerel veya github deposu baz\u0131nda incelemenizi sa\u011flar.\r\n \t<b>Clean<\/b> : Yereldeki veya github\u2019daki deponuzu \u201cbo\u015faltman\u0131z\u0131\u201d sa\u011flar. Bu se\u00e7ene\u011fi kullan\u0131rken dikkat etmenizi tavsiye ederiz.\r\n \t<b>Pull<\/b> : Push\u2019un tersini yapar, yani g\u00fcncelleme i\u015flemini yerel depo kayna\u011f\u0131ndan veya github depo kayna\u011f\u0131ndan g\u00fcncellemenizi sa\u011flar. Bu noktada Pull yerine&nbsp;Push men\u00fcs\u00fcn\u00fcn kullan\u0131lmas\u0131 kafa kar\u0131\u015f\u0131kl\u0131\u011f\u0131n\u0131 \u00f6nleme ad\u0131na yararl\u0131 olabilir.\r\n<\/code><\/pre>\n<h1>Proje Senkronizasyonu<\/h1>\n<p>Otomatik bir senkronizasyondan s\u00f6z edemiyoruz, bunun sebebi yerel depolardaki hakimiyetin yine yerel kullan\u0131c\u0131larda kalmas\u0131, her kullan\u0131c\u0131n\u0131n yapt\u0131\u011f\u0131 (do\u011fru veya yanl\u0131\u015f) revizyonlar\u0131n bir \u00f6n incelemeden ge\u00e7meksizin di\u011fer (<b>kat\u0131l\u0131mc\u0131lar a\u00e7\u0131s\u0131ndan<\/b>)&nbsp;herkesin \u00e7al\u0131\u015fmas\u0131n\u0131 bozmamas\u0131 i\u00e7indir.<\/p>\n<p>Tekrar RAD Studio\u2019ya d\u00f6n\u00fcp projemize sa\u011f t\u0131klayal\u0131m, t\u0131pk\u0131 a\u015fa\u011f\u0131daki gibi bir se\u00e7enekler manzumesiyle kar\u015f\u0131la\u015faca\u011f\u0131z. S\u0131ras\u0131yla \u00f6rneklemeler \u00fczerinden ad\u0131m ad\u0131m konuyu inceleyelim.<\/p>\n<p>Project Manager b\u00f6lmesinde projemize sa\u011f t\u0131klad\u0131\u011f\u0131m\u0131zda a\u00e7\u0131lan popup men\u00fcn\u00fcn ortalar\u0131ndan sonras\u0131ndaki bir b\u00f6l\u00fcmde \u201c<b>Git<\/b>\u201d men\u00fcs\u00fc belirir. Bu men\u00fcn\u00fcn (<b>RAD S\u00fcr\u00fcm\u00fcne ba\u011fl\u0131 olarak<\/b>) birka\u00e7 alt men\u00fcs\u00fc daha vard\u0131r. Biz \u00f6rne\u011fimizde Tokyo versiyonu \u00fczerinden devam edece\u011fimiz i\u00e7in a\u015fa\u011f\u0131daki gibi bir men\u00fc ile kar\u015f\u0131la\u015faca\u011f\u0131z;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-555 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/o69k191.png\" alt=\"\" width=\"546\" height=\"641\"><\/p>\n<p>Projemizde hen\u00fcz bir s\u00fcr\u00fcm takibi yapmad\u0131\u011f\u0131m\u0131z i\u00e7in ilk \u00f6nce nelerin s\u00fcr\u00fcm\u00fcn\u00fc takip edece\u011fimizi de belirlememiz gerekir. Bunun i\u00e7in yukar\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcnde de oldu\u011fu gibi <b>popup men\u00fcden<\/b> <b>Git &gt; Commit &gt; &#8220;From Project Directory&#8221;<\/b>&nbsp;\u00f6\u011fesine bas\u0131yoruz. Kar\u015f\u0131m\u0131za i\u00e7i bo\u015f bir dosya listesi \u00e7\u0131kacakt\u0131r. T\u0131pk\u0131 a\u015fa\u011f\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcnde oldu\u011fu gibi.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-556 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/nJ2WZN1.png\" alt=\"\" width=\"638\" height=\"523\"><\/p>\n<p>Bu noktada Commit ekran\u0131n\u0131n sol alt k\u00f6\u015fesinde iki adet i\u015faret kutucu\u011fu yer alacakt\u0131r. Her ikisini de i\u015faretledi\u011fimizde yukar\u0131daki listede projemize dahil olan dosyalar\u0131n listesi yer al\u0131r. Ayr\u0131ca sa\u011f alt k\u00f6\u015fedeki \u201c<b>Commit<\/b>\u201d butonu da (<b>asl\u0131nda bir comment (a\u00e7\u0131klama) yazd\u0131\u011f\u0131n\u0131zda<\/b>) etkinle\u015fecektir. Son durum \u015funun gibi bir \u015fey olacakt\u0131r;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-557 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/a10GW21.png\" alt=\"\" width=\"614\" height=\"419\"><\/p>\n<p>G\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere \u201c<b>Commit<\/b>\u201d butonuna bas\u0131ld\u0131\u011f\u0131nda i\u015flemin ba\u015far\u0131yla ger\u00e7ekle\u015ftirildi\u011fine dair bir mesaj alacaks\u0131n\u0131z. Bu mesaj a\u015fa\u011f\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcnde de g\u00f6sterildi\u011fi \u00fczere Mesaj penceresinde g\u00f6z\u00fckecektir.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-558 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/1Grg5B1.png\" alt=\"\" width=\"620\" height=\"191\"><\/p>\n<p>De\u011fi\u015fiklikleri yerel depomuza i\u015fledi\u011fimize g\u00f6re art\u0131k bu depoyu github \u00fczerinden de eri\u015filebilir ve takip edilebilir bir hale d\u00f6n\u00fc\u015ft\u00fcrmenin zaman\u0131 geldi.<\/p>\n<h1>Projenin Github\u2019a Tan\u0131t\u0131lmas\u0131<\/h1>\n<p>Commit i\u015flemini ger\u00e7ekle\u015ftirdi\u011fimizde versiyon kontrol\u00fcn\u00fc yerel d\u00fczeyde ve basit anlamda takip eder hale gelmi\u015ftik. Art\u0131k s\u0131ra bu projenin di\u011fer tak\u0131m arkada\u015flar\u0131m\u0131zla payla\u015f\u0131m\u0131n\u0131 ve da\u011f\u0131t\u0131m\u0131n\u0131 yapmaya geldi. Bu noktada proje popup men\u00fcs\u00fcnde \u201cGit\\Push\\From Project Directory\u201d men\u00fcs\u00fcn\u00fc kulland\u0131\u011f\u0131m\u0131zda URL\u2019nin bulunamad\u0131\u011f\u0131 ile ilgili bir hata mesaj\u0131yla kar\u015f\u0131la\u015faca\u011f\u0131zd\u0131r. Bu hata mesaj\u0131yla kar\u015f\u0131la\u015fmamak veya bu sorunu a\u015fmak i\u00e7in ise \u00f6nce a\u015fa\u011f\u0131daki ba\u011flant\u0131y\u0131 a\u00e7\u0131p yeni bir depo tan\u0131m\u0131 yapmam\u0131z gerekir;<\/p>\n<p><a href=\"https:\/\/github.com\/new\">https:\/\/github.com\/new<\/a><\/p>\n<p>Linke gitti\u011fimizde a\u015fa\u011f\u0131daki gibi bir sayfa a\u00e7\u0131lacakt\u0131r. Bu sayfada owner k\u0131sm\u0131nda sizin&nbsp; (<b>bu \u00f6rnekte ben daha \u00f6nceden login oldu\u011fum i\u00e7in<\/b>) kullan\u0131c\u0131 ad\u0131n\u0131z\u0131n oldu\u011fu bir form ekran\u0131 gelecektir. Repository Name k\u0131sm\u0131na projenize verdi\u011finiz ismin ayn\u0131s\u0131n\u0131 yaz\u0131n. E\u011fer kamuya a\u00e7\u0131k, herkesin kaynak kodlara eri\u015febilece\u011fi bir depo olmas\u0131n\u0131 istiyorsan\u0131z \u201c<b>public<\/b>\u201d tersini istiyorsan\u0131z da \u201c<b>Private<\/b>\u201d se\u00e7ene\u011fini i\u015faretleyip ye\u015fil renkli \u201c<b>Create Repository<\/b>\u201d butonuna bas\u0131yoruz. (<b>Private se\u00e7ene\u011finin \u00fccrete tabi oldu\u011funu unutmay\u0131n. Biz public se\u00e7ene\u011fi \u00fczerinden devam edece\u011fimiz i\u00e7in bu k\u0131s\u0131mlar\u0131 es ge\u00e7iyoruz.<\/b>)<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-559 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/MaWvn91.png\" alt=\"\" width=\"749\" height=\"664\"><\/p>\n<p>\u201c<b>Create Repository<\/b>\u201d butonuna bast\u0131ktan sonra github, projemiz ile ilgili depoyu kendi sisteminde olu\u015fturmas\u0131n\u0131n ard\u0131ndan, a\u015fa\u011f\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcnde de g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere web depomuzu nas\u0131l y\u00f6netece\u011fimize dair baz\u0131 ek bilgiler ve ipu\u00e7lar\u0131&nbsp;verecektir.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-560 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/AygkBq1.png\" alt=\"\" width=\"782\" height=\"831\"><\/p>\n<p>Yukar\u0131daki resimde \u201c<b>1<\/b>\u201d ile vurgulanan adres, github havuzumuzdaki projenin git adresini i\u00e7ermektedir. Bu adresi kullanarak github ve RAD Studio aras\u0131nda projemizin havuzlar\u0131n\u0131 birbirine ba\u011flayabiliriz. \u201c<b>2<\/b>\u201d ve \u201c<b>3<\/b>\u201d ile vurgulanan k\u0131s\u0131mlar ise DOS komut sat\u0131r\u0131n\u0131 kullanarak demin bahsetti\u011fimiz ba\u011flant\u0131y\u0131 kurabilmemizi sa\u011flar.<\/p>\n<p>Bu noktada projemiz ile github deposu aras\u0131nda ba\u011flant\u0131 kurmak i\u00e7in iki se\u00e7ene\u011fimiz oldu\u011funu g\u00f6rm\u00fc\u015f oluyoruz. S\u0131rayla bu y\u00f6ntemlerin nas\u0131l uygulanaca\u011f\u0131n\u0131 inceleyelim.<\/p>\n<h1>1. Y\u00f6ntem \/ RAD Studio \u00dczerinden<\/h1>\n<p>Project Management b\u00f6l\u00fcm\u00fcndeki projemize sa\u011f t\u0131klad\u0131\u011f\u0131m\u0131zda a\u00e7\u0131lan a\u015fa\u011f\u0131daki men\u00fcden, yani \u201cGit\\Push\\From Project Directory\u201d butonuna bas\u0131yoruz. Bunu yapt\u0131\u011f\u0131m\u0131zda yereldeki depomuzu github\u2019daki depoya aktarm\u0131\u015f olaca\u011f\u0131z.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-561 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/nJ2WX51.png\" alt=\"\" width=\"528\" height=\"212\"><\/p>\n<p>Bu butona bast\u0131\u011f\u0131m\u0131zda RAD Studio bize Github\u2019daki kullan\u0131c\u0131 ad\u0131 ve \u015fifremizi soran bir ekran \u00e7\u0131karacakt\u0131r.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-562 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/Gy50dN1.png\" alt=\"\" width=\"339\" height=\"232\"><\/p>\n<p>Bu ekrana github kullan\u0131c\u0131 ad\u0131 ve \u015fifremizi yazd\u0131\u011f\u0131m\u0131zda RAD Studio gereken kopyalama ve e\u015fitleme i\u015flemini ger\u00e7ekle\u015ftirecek ve a\u015fa\u011f\u0131daki bilgilendirme mesaj\u0131n\u0131 bize verecektir.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-563 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/By4AJV1.png\" alt=\"\" width=\"806\" height=\"129\"><\/p>\n<p>Olay bitti, i\u015fte bu kadar!&nbsp;Ge\u00e7elim di\u011fer y\u00f6nteme;<\/p>\n<h1>2. Y\u00f6ntem \/ DOS Komut Sat\u0131r\u0131 \u00dczerinden<\/h1>\n<p>1. Y\u00f6ntemin ilk ba\u015fta i\u015fe yaramamas\u0131 durumunda \u015fimdi anlataca\u011f\u0131m y\u00f6ntemi ger\u00e7ekle\u015ftirerek yerel deponuzu github deposuna ba\u011flayabilirsiniz. Bunun i\u00e7in DOS komut sat\u0131r\u0131n\u0131 y\u00f6netici kipiyle a\u00e7al\u0131m. Ard\u0131ndan s\u0131rayla \u015fu komutlar\u0131 yazal\u0131m; (mavi renkli olan k\u0131s\u0131m sizin kullan\u0131c\u0131 ad\u0131n\u0131z\u0131, k\u0131rm\u0131z\u0131 renkte olan k\u0131s\u0131m ise projenizin ad\u0131n\u0131 ifade etmektedir.)<\/p>\n<pre><code>\r\n \tgit remote add origin https:\/\/github.com\/<span style=\"color: #3366ff;\"><b>uparlayan<\/b><\/span>\/<span style=\"color: #ff6600;\"><b>gittestprojesi<\/b><\/span>.git\r\n \tgit push -u origin master\r\n<\/code><\/pre>\n<p>Bu noktada a\u015fa\u011f\u0131daki gibi bir login ekran\u0131 kar\u015f\u0131n\u0131za gelecektir.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-564 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/V363gq1.png\" alt=\"\" width=\"406\" height=\"413\"><\/p>\n<p>Kullan\u0131c\u0131 ad\u0131 ve \u015fifrenizi yazd\u0131ktan sonra DOS komut sat\u0131r\u0131 i\u015flemi ger\u00e7ekle\u015ftirdi\u011fine dair detayl\u0131 bir \u00e7\u0131kt\u0131 ile sonucu bize bildirmi\u015f olacakt\u0131r.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-565 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/OyBynP1.png\" alt=\"\" width=\"546\" height=\"260\"><\/p>\n<p>Push y\u00f6nteminin kurulumu asl\u0131nda bu kadar.<\/p>\n<p>Projenizin yeni g\u00fcncellemelerini ise bu noktadan sonra RAD Studio \u00fczerinden (yani 1. Y\u00f6ntem \u00fczerinden) yapmaya devam edebilirsiniz. Bunun otomatik olmamas\u0131 size asl\u0131nda bir hareket alan\u0131 da b\u0131rakm\u0131\u015f oluyor, yani bu noktada siz neyi ne kadar payla\u015faca\u011f\u0131n\u0131z\u0131 kendiniz belirlemi\u015f oluyorsunuz&#8230;<\/p>\n<p>Her \u015fey tamamland\u0131\u011f\u0131nda projeniz github sitesinde a\u015fa\u011f\u0131dakine benzer \u015fekilde g\u00f6z\u00fckecektir; Sizin de fark etti\u011finiz gibi, sayfada ilk commit i\u015fleminde i\u015faretledi\u011finiz dosyalar\u0131n ve sonras\u0131nda 2. Commit i\u015fleminde ekledi\u011finiz dosyalar\u0131n tamam\u0131 yer almaktad\u0131r.<\/p>\n<p>Fakat github sisteminin tek faydas\u0131 bu de\u011fil, bu sayfada kaynak kodlar d\u0131\u015f\u0131nda sorunlar\u0131 takip edebilece\u011finiz, projenize ba\u011flanma iste\u011finde bulunanlar\u0131 g\u00f6rebilece\u011finiz ve Wiki tarz\u0131 dok\u00fcmantasyon yapabilece\u011finiz alt sayfalar da bulunmaktad\u0131r.<\/p>\n<p><img decoding=\"async\" class=\" wp-image-566 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/jQjQLG1-1024x765.png\" alt=\"\"><\/p>\n<h1>Bir Github projesine RAD Studio \u00fczerinden Ba\u011flanmak<\/h1>\n<p>Buraya kadar olan konular bizim kendi projemizi github \u00fczerinde nas\u0131l yay\u0131nlar\u0131z, yerel ve github deposunu nas\u0131l e\u015fle\u015ftiririz, de\u011fi\u015fiklikleri nas\u0131l y\u00f6netiriz gibi konular\u0131 i\u00e7eriyordu. \u015eimdi ise projemize 2. bir ki\u015finin kat\u0131ld\u0131\u011f\u0131nda (<b>veya birden \u00e7ok bilgisayarda \u00e7al\u0131\u015f\u0131yorsan\u0131z<\/b>) bu ki\u015finin ne yapmas\u0131 gerekti\u011fine dair ufak bir iki bilgi verece\u011fiz. Burada anlat\u0131lacak olan y\u00f6ntem, makinan\u0131za format att\u0131\u011f\u0131n\u0131zda projenizi github\u2019daki depodan yerel deponuza al\u0131rken de kullanabilece\u011finiz teknikleri i\u00e7ermektedir.<\/p>\n<p>Ba\u015flamadan \u00f6nce bu noktada &#8220;GIT&#8221; sistemini kullanan farkl\u0131 web depolar\u0131 da var mesela&nbsp;[url=http:\/\/www.bitbucket.org]http:\/\/www.bitbucket.org[\/url]. Yaz\u0131n\u0131n devam\u0131nda bizim github.com i\u00e7in anlatt\u0131\u011f\u0131m\u0131z teknikleri bitbucket.org i\u00e7in de benzer \u015fekilde&nbsp;uygulayabilirsiniz. \u00c7\u00fcnk\u00fc burada &#8220;<b>GIT<\/b>&#8220;ten kas\u0131t &#8220;<b>GIT versiyon Kontrol Sisteminin<\/b>&#8221; kendisini ifade eder, \u00f6zellikle belirtiyorum, do\u011frudan &#8220;<b>github.com&#8217;u ifade etmez<\/b>&#8220;. Yani e\u011fer bitbucket&#8217;e \u00fcyeli\u011finiz varsa onu da RAD Studio&#8217;da bu \u015fekilde kullanabilirsiniz.<\/p>\n<p>Hadi ba\u015flayal\u0131m.<\/p>\n<p>\u00d6ncelikle RAD Studio\u2019daki mevcut projemizi kaydedip kapatt\u0131ktan sonra github sitesine girelim. Burada Klonunu \u00fcretmek istedi\u011fimiz projenin sayfas\u0131n\u0131 a\u00e7al\u0131m ve CODE sayfas\u0131nda listenin sa\u011f \u00fcst k\u00f6\u015fesinde yer alan \u201c<b>Clone or Download<\/b>\u201d isimli ye\u015fil butona basal\u0131m;<\/p>\n<p>\u00d6rnek olmas\u0131 a\u00e7\u0131s\u0131ndan FluentXML projesinin yerel bir kopyas\u0131n\u0131 github \u00fczerinden olu\u015fturmak \u00fczere kullanaca\u011f\u0131m.<\/p>\n<p>A\u015fa\u011f\u0131daki resimde \u201c<b>2<\/b>\u201d ile numaralanm\u0131\u015f butona bast\u0131\u011f\u0131m\u0131zda ilgili projenin github adresini elde etmi\u015f oluyoruz.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-567 size-full\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/QpWpRV1.png\" alt=\"\" width=\"1031\" height=\"531\"><\/p>\n<p>Ard\u0131ndan RAD Studio\u2019da \u201c<b>File\\Open From Version Control\u2026<\/b>\u201d butonuna bas\u0131yoruz. Kar\u015f\u0131m\u0131za hangi s\u00fcr\u00fcm kontrol sistemini kullanaca\u011f\u0131m\u0131za dair bir pencerecik \u00e7\u0131k\u0131yor.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-568 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/vJRJb41.png\" alt=\"\" width=\"375\" height=\"142\"><\/p>\n<p>\u201c<b>git<\/b>\u201di se\u00e7ip tamama bas\u0131yoruz. Devam\u0131nda git ile ilgili ba\u015fka bir pencere daha geliyor. \u201c<b>Clone<\/b>\u201d ba\u015fl\u0131kl\u0131 bu pencerenin <b>SOURCE <\/b>sat\u0131r\u0131na yukar\u0131dan kopyalad\u0131\u011f\u0131m\u0131z linki yap\u0131\u015ft\u0131r\u0131yoruz. <b>DESTINATION <\/b>k\u0131sm\u0131na ise yerel repository\u2019imizi nereye olu\u015fturmak istiyorsak oray\u0131 se\u00e7iyoruz.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-569 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/ROBOB61.png\" alt=\"\" width=\"539\" height=\"186\"><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-570 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/WGEG0m1.png\" alt=\"\" width=\"956\" height=\"299\"><\/p>\n<p>OK butonuna bast\u0131\u011f\u0131m\u0131zda ise a\u015fa\u011f\u0131daki gibi s\u00fcreci takip edebilece\u011fimiz bir ekran daha \u00e7\u0131k\u0131yor. Bu ekranda sihirbaz\u0131n tam olarak ne yapt\u0131\u011f\u0131 g\u00f6steriliyor.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-571 aligncenter\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/6y8yJl1.png\" alt=\"\" width=\"527\" height=\"343\"><\/p>\n<p>Nihayetinde OK butonuna bast\u0131\u011f\u0131m\u0131zda s\u00fcre\u00e7 de tamamlanm\u0131\u015f oluyor.<\/p>\n<p>Bu noktada kontrol ama\u00e7l\u0131 olarak bir \u00f6nceki pencerede <b>DESTINATION <\/b>olarak verdi\u011finiz klas\u00f6re gidip, dosyalar\u0131m\u0131z\u0131n kopyalan\u0131p kopyalanmad\u0131\u011f\u0131n\u0131 teyit edebiliriz.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-572 size-full\" src=\"http:\/\/rubicube.com.tr\/wp-content\/uploads\/2018\/09\/qJRJvq1.png\" alt=\"\" width=\"1069\" height=\"323\"><\/p>\n<p>Bu noktada bir hat\u0131rlatmada bulunmak san\u0131r\u0131m faydal\u0131 olacak. github&#8217;daki (veya benzer sitelerdeki) havuzdan yerel bilgisayar\u0131n\u0131za bir klon olu\u015fturdu\u011funuzda, havuz (RAD Studio a\u00e7\u0131s\u0131ndan) bir proje dosyas\u0131 i\u00e7eriyorsa RAD Studio bu projeyi bu noktada otomatik olarak y\u00fckleyecektir. E\u011fer havuz bir proje ihtiva etmiyorsa, i\u00e7ermiyorsa RAD Studio herhangi bir y\u00fckleme eylemine girmez. Bu noktada siz dosyan\u0131z\u0131 IDE&#8217;ye manuel olarak ekleyebilirsiniz.<\/p>\n<p>Bitti, hepsi bu kadar&#8230;<\/p>\n<p>Umar\u0131m camiam\u0131za faydal\u0131 olur.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hepimizin malumudur, birden \u00e7ok lokasyonda \u00e7al\u0131\u015fma durumumuz veya birden \u00e7ok bilgisayarda kendi projelerimizi kodlamam\u0131z gerekebiliyor. Mesela bazen evden bazen i\u015f yerinden, bazen masa\u00fcst\u00fc bazen de diz\u00fcst\u00fc bilgisayardan \u00e7al\u0131\u015fmak durumunda kalabiliyoruz. Bu da yetmezmi\u015f gibi bazen baz\u0131 projelerde birden \u00e7ok kat\u0131l\u0131mc\u0131n\u0131n oldu\u011fu, ekiplerin oldu\u011fu durumlar da ya\u015fanabiliyor.<\/p>\n","protected":false},"author":1,"featured_media":265,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[32,4,5,33,34],"class_list":["post-170","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-bash","tag-delphi","tag-dokumantasyon","tag-dos","tag-github"],"_links":{"self":[{"href":"http:\/\/www.potansif.com\/index.php?rest_route=\/wp\/v2\/posts\/170","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.potansif.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.potansif.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.potansif.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.potansif.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=170"}],"version-history":[{"count":1,"href":"http:\/\/www.potansif.com\/index.php?rest_route=\/wp\/v2\/posts\/170\/revisions"}],"predecessor-version":[{"id":171,"href":"http:\/\/www.potansif.com\/index.php?rest_route=\/wp\/v2\/posts\/170\/revisions\/171"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.potansif.com\/index.php?rest_route=\/wp\/v2\/media\/265"}],"wp:attachment":[{"href":"http:\/\/www.potansif.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=170"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.potansif.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=170"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.potansif.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}