{"id":328,"date":"2018-01-25T13:28:04","date_gmt":"2018-01-25T10:28:04","guid":{"rendered":"http:\/\/melic.com\/wp1\/?p=328"},"modified":"2018-01-25T13:28:04","modified_gmt":"2018-01-25T10:28:04","slug":"bi-github-hikayesi","status":"publish","type":"post","link":"https:\/\/melic.com\/wp1\/bi-github-hikayesi\/","title":{"rendered":"bi&#8217; github hikayesi"},"content":{"rendered":"<p>Bir \u00e7o\u011funuzun <code>github<\/code> dendi\u011finde ne oldu\u011funu anlamad\u0131\u011f\u0131m\u0131z\u0131 kendimden biliyorum. E\u011fer bir yaz\u0131l\u0131m departman\u0131nda \u00e7al\u0131\u015fma \u015fans\u0131n\u0131z olmad\u0131ysa zaten repository veya versioning terimlerinin size \u00e7ok uzak olmas\u0131 \u00e7ok do\u011fal. Ben uzun y\u0131llar yazd\u0131\u011f\u0131m yaz\u0131l\u0131mlar\u0131n versiyonlar\u0131na pek \u00f6nem vermedim,\u00e7\u00fcnk\u00fc d\u00fcr\u00fcst olmak gerekirse planl\u0131 programl\u0131 bir kodlama yerine on demand yani ihtiya\u00e7 durumunda bir kod yaz\u0131m\u0131 s\u00f6z konusu oldu\u011fundan benim i\u00e7in yazd\u0131\u011f\u0131m versiyon hep tek ve son versiyon oluyordu. Zaten yazd\u0131\u011f\u0131m yaz\u0131l\u0131mlar\u0131n kodlar\u0131n\u0131 kimse ile payla\u015fmad\u0131\u011f\u0131m i\u00e7in versiyon numaras\u0131n\u0131n ne oldu\u011fu birazda keyfi bir durum oldu. Ben yaz\u0131l\u0131ma ba\u015flad\u0131\u011f\u0131mda kabul edersiniz ki ne github vard\u0131 ne internet vard\u0131 ne google ne de stackexchange. Hal b\u00f6yle olunca da bug\u00fcn insanlar\u0131n s\u0131kl\u0131kla kulland\u0131\u011f\u0131 terimlere de teknolojilere de \u00e7ok uzakt\u0131k. Ama bildi\u011fim tek \u015fey teknoloji i\u015fi deniz derya benimde hep k\u0131y\u0131s\u0131nda y\u00fczebildi\u011fim.Bir g\u00fcn a\u00e7\u0131l\u0131p hi\u00e7 gelmeyesim var :D<\/p>\n<p>Peki bir yerde ba\u015flamak laz\u0131m deyip aylar \u00f6nce ba\u015flad\u0131\u011f\u0131m ama bir t\u00fcrl\u00fc bitiremedi\u011fim \u015fu benim github 101 yaz\u0131m\u0131 yaz\u0131p taslaklardan \u00e7\u0131karay\u0131m diyorum.Umuyorum benim gibi acemilere faydas\u0131 olur:<\/p>\n<p>Ad\u0131m ad\u0131m gitmek gerekiyorsa ilk yapman\u0131z gereken ad\u0131mlar \u015f\u00f6yle :<br \/>\n1- Bu adrese gidip kay\u0131t oluyorsunuz <a href=\"https:\/\/github.com\/\" rel=\"noopener\" target=\"_blank\">Github.IO<\/a><\/p>\n<p>2- ikinci ad\u0131mda t\u00fcm d\u00fcnya ile payla\u015fabilece\u011finiz yada paras\u0131n\u0131 \u00f6deyerek sistemi kullanabilece\u011finiz bir se\u00e7enek soruluyor. Benim burada size anlataca\u011f\u0131m \u00fccretsiz versiyon.Di\u011fer versiyonda isterseniz t\u00fcm kaynak kodlar\u0131n\u0131z\u0131 kendinize saklars\u0131n\u0131z ve sadece siz ve payla\u015fmak istedi\u011finiz ki\u015filer tan\u0131mlars\u0131n\u0131z isterseniz bizim burada anlatt\u0131\u011f\u0131m\u0131z gibi t\u00fcm d\u00fcnyaya a\u00e7abilirsiniz.<br \/>\nbiz se\u00e7enek olarak \u015fu se\u00e7ene\u011fi se\u00e7iyoruz:<\/p>\n<blockquote><p>Unlimited public repositories for free.<\/p><\/blockquote>\n<p>3- \u00fc\u00e7\u00fcnc\u00fc ad\u0131mda daha \u00e7ok istatistiksel bilgiler i\u00e7eren sorular soruluyor. Gerekli se\u00e7enekleri se\u00e7erek hesab\u0131m\u0131z\u0131 olu\u015fturmu\u015f olal\u0131m.<\/p>\n<p>Not: Kay\u0131tl\u0131 oldu\u011funuz mailinize onay maili gelecek; gelen linki t\u0131klad\u0131\u011f\u0131n\u0131zda hesab\u0131n\u0131z olu\u015fmu\u015f olacak.<\/p>\n<p>Art\u0131k sizin kullan\u0131c\u0131 ad\u0131n\u0131zla reponuz(depo) olu\u015fmu\u015f durumda , istedi\u011finiz zaman<\/p>\n<p>http:\/\/kullanici_adi.github.io  adresini kullanarak olu\u015fturdu\u011funuz depolara eri\u015febilir yada yeni repolar olu\u015fturabilirsiniz.<\/p>\n<p>Kay\u0131t i\u015flemi bittikten sonra sa\u011f \u00fcst k\u00f6\u015fede &#8220;+&#8221; i\u015faretini t\u0131klay\u0131p &#8220;New repository&#8221; se\u00e7ene\u011fini se\u00e7erek ilk github repomuzu olu\u015fturuyoruz.<\/p>\n<p>Bu ekranda dikkat edilmesi gereken \u015fey ad verirken yeni repoya arada bosluk kullanmiyoruz ayr\u0131ca benim size tavsiyem sadece a\u015fa\u011f\u0131daki <\/p>\n<p>&#8220;Initialize this repository with a README&#8221;<\/p>\n<p>se\u00e7ene\u011fini se\u00e7meniz. Alttaki &#8220;Create Repository&#8221; d\u00fc\u011fmesine basarak alan\u0131n\u0131z\u0131 olu\u015fturuyorsunuz.<\/p>\n<p>\u0130kinci ad\u0131m versiyonlar\u0131 takip edebilmeniz ad\u0131na \u00e7ok \u00f6nemli bir ad\u0131m olan BRANCHING yani s\u0131n\u0131fland\u0131rma(dalland\u0131rma) tabi s\u0131n\u0131fland\u0131rma yaz\u0131l\u0131m dilinde CLASS&#8217;a \u00e7a\u011fr\u0131\u015f\u0131m yapt\u0131\u011f\u0131 i\u00e7in Branching&#8217;i T\u00fcrk\u00e7e&#8217;ye \u00e7evirmek biraz s\u0131k\u0131nt\u0131l\u0131. Alternatif olarak kollara ay\u0131rma da diyebiliriz.<\/p>\n<p>Temelde reponuz master olarak olu\u015facakt\u0131r.Sizin ve arkada\u015flar\u0131n\u0131z\u0131n yapt\u0131\u011f\u0131 her yeni g\u00fcncelleme kendi dallar\u0131nda duracak taki siz onlar\u0131 commit edip master&#8217;a atana kadar.<br \/>\nEsas\u0131nda siz bir branch olu\u015fturdu\u011funuzda yap\u0131lan i\u015flem master&#8217;in bir kopyas\u0131n\u0131 olu\u015fturmak ya da snapshot&#8217;\u0131n\u0131 olu\u015fturmak. i\u015fin g\u00fczel taraf\u0131 siz bir branch&#8217;ta kod ile \u00e7al\u0131\u015f\u0131rken master&#8217;a commit edilmi\u015f yeni bir g\u00fcncellemeyi kendinize pull edebiliyorsunuz.<\/p>\n<p>Detaylara girmeden master&#8217;da \u00e7al\u0131\u015fmak elbette m\u00fcmk\u00fcn iken biz tabi ki kesinlikle yeni bir branch a\u00e7\u0131yoruz.Yap\u0131lan de\u011fi\u015fiklikleri takip edebilmek ve versiyonlamay\u0131 ger\u00e7ekle\u015ftirebilmek i\u00e7in.<\/p>\n<p><code><br \/>\nBRANCH: master<br \/>\n<\/code><br \/>\nkutusunu a\u00e7\u0131p i\u00e7erisine olu\u015ftumak istedi\u011finiz branch&#8217;\u0131n ad\u0131n\u0131 yaz\u0131yp alttan CREATE butonuna bas\u0131yorsunuz. Ben size basit \u00f6rnek olabilmesi i\u00e7in demin repoyu yarart\u0131rken README b\u00f6l\u00fcm\u00fcn\u00fc olu\u015fturman\u0131z\u0131 sa\u011flam\u0131\u015ft\u0131m. Atlamad\u0131ysan\u0131z master i\u00e7erisinde README dosyas\u0131 olu\u015fmu\u015f olmal\u0131.Bu y\u00fczden ben BRANCH : master kutusunu (ekran sol orta)a\u00e7\u0131p i\u00e7erisine <code>readme-duzenleme<\/code> yaz\u0131p \u00f6yle create branch tu\u015funa basman\u0131z\u0131 istiyorum.<\/p>\n<p>Art\u0131k Branch tusunda hem master hemde readme-duzenle kollari olu\u015ftu ve ikisi de birbirinin kopyas\u0131 \u015fu anda ; esas\u0131nda readme-duzenle master &#8216;\u0131n kopyas\u0131.<\/p>\n<p><code>Branch : readme-duzenle<\/code> &#8216;yi se\u00e7ip i\u00e7erisine giriyoruz.Buradaki README dosyas\u0131n\u0131n i\u00e7erisine girip sa\u011f taraftan kalem i\u015faretini t\u0131klay\u0131p dosyan\u0131n i\u00e7eri\u011fini de\u011fi\u015ftirelim. Mesela projeniz hakk\u0131nda bir\u015feyler yada kendinizi tan\u0131tan bir ka\u00e7 bir \u015fey yazal\u0131m.Bu i\u015flemi yapt\u0131ktan sonra altta var olan COMMIT butonuna basaca\u011f\u0131z.<\/p>\n<p>Art\u0131k master ile readme-duzenle branchlar\u0131 birbirlerinden farkl\u0131 bu noktada art\u0131k devreye PULL REQUEST (\u00e7a\u011fr\u0131 talepleri) kavram\u0131 devreye giriyor. Github sisteminde Pull Requestleri kolabrasyonun kalbini olu\u015fturur.Bu i\u015flemi ba\u015flatt\u0131\u011f\u0131n\u0131zda projeye dahil olan y\u00f6neticilerin de\u011fi\u015fiklikleri g\u00f6zlemlemesini ve uygunsa pull i\u015flemlerini kendi branchlar\u0131na alabilmelerini sa\u011flar.Pull requestleri farkl\u0131l\u0131klar\u0131 g\u00f6sterir veya iki farkl\u0131 branchtaki de\u011fi\u015fimleri. De\u011fi\u015fiklikler, eklemeler ve \u00e7\u0131kartmalar ye\u015fil ve k\u0131rm\u0131z\u0131 renklerle g\u00f6sterilir.<\/p>\n<p>Commit i\u015flemini bitirir bitirmez hemen pe\u015finden pull request a\u00e7abilir ve kodlama daha bitmeden proje dahil olmu\u015f (fork) t\u00fcm kat\u0131l\u0131mc\u0131lar ile tart\u0131\u015fma\/m\u00fczakere ba\u015flatabilirsiniz.<\/p>\n<p>Github sisteminde @imaetme(mention) sistemi ile pull request mesaj\u0131nda kat\u0131l\u0131mc\u0131lardan geri d\u00f6n\u00fc\u015f isteyebilirsiniz, hatta bu insanlar yada tak\u0131m d\u00fcnyan\u0131n neresinde veya hangi zaman diliminde olursa olsun.Bu github&#8217;\u0131n ak\u0131\u015f\u0131n\u0131 anlaman\u0131z b\u00fcy\u00fck projelerde \u00e7al\u0131\u015fman\u0131z i\u00e7in \u00e7ok \u00f6nemli.<\/p>\n<p>Pull Request tab\u0131na girip sa\u011fdan &#8220;New Pull Request&#8221; butonuna t\u0131kl\u0131yoruz. Master branch uzerine ge\u00e7mi\u015f oluyorsunuz bu sayede.Master \u00fczerindeyken a\u015fa\u011f\u0131da di\u011fer branch \u00fczerindeki ki bizim \u00f6rne\u011fimizde &#8220;readme-duzenle&#8221; branchini se\u00e7iyoruz.Bu sayede github hemen iki repo aras\u0131ndaki dosyalardaki farklar\u0131 g\u00f6steriyor. &#8220;Create Pull Request &#8221; butonuna bast\u0131\u011f\u0131n\u0131zda size bir ba\u015fl\u0131k ve a\u00e7\u0131klma girece\u011finiz bir form olu\u015fturacak burada yukar\u0131da da de\u011findi\u011fim gerekli ba\u015fl\u0131k veya a\u00e7\u0131klama olsun bilgileri girip &#8220;Create Pull Request&#8221; butonuna tekrardan bas\u0131yoruz.Bu sefer kar\u015f\u0131n\u0131za github sisteminin sistemi gerekli testleri ve kar\u015f\u0131\u015falt\u0131rmalar\u0131 yapt\u0131ktan sonra e\u011fer bir hata ile kar\u015f\u0131la\u015fmaz ise size bir rapor ekran\u0131 a\u00e7\u0131yor ve bu ekranda &#8220;MERGE PULL REQUEST&#8221; deyip ister branch&#8217;tan master&#8217;a yada tam tersi master&#8217;a aktar\u0131lm\u0131\u015f bir pull kendi branch\u0131n\u0131za bu \u015fekilde merge etmi\u015f oluyorsunuz.<\/p>\n<p>Art\u0131k bir projede birden fazla ki\u015fi d\u00fcnyan\u0131n ba\u015fka yerlerinden grup olarak \u00e7al\u0131\u015fabilmesi hakk\u0131nda bir bilgi sahibisiniz.Tebrik ediyorum.<\/p>\n<p>E\u011fer i\u015fletim sisteminiz Linux ise github&#8217;\u0131 sisteminize yum veya apt ile kurabilir ve kendi lokalinizde dosyalar\u0131 tutup test edip de\u011fi\u015fiklikleri yapabilir ve sonra tekrardan github&#8217;a y\u00fckleyebilirsiniz.Bu arada bu s\u00f6yledi\u011fimi yapabilmek i\u00e7in illa Linux de\u011fil Mac ve Windows kullan\u0131c\u0131lar\u0131 da github.io sitesinden ilgili uygulamalar\u0131 indirerek projelerinizi offline da g\u00fcncelleyebilirsiniz.<\/p>\n<p>\u00d6nce github&#8217;a ba\u011flanmal\u0131s\u0131n\u0131z:<br \/>\n-git clone https:\/\/github.com\/kullanici_adi\/kullanici_adi.github.io<\/p>\n<p>kendi repo&#8217;nuza gireceksiniz<br \/>\n&#8211; cd username.github.io<\/p>\n<p>index.html dosyas\u0131 olu\u015ftural\u0131m<br \/>\n~$ echo &#8220;Hello World&#8221; > index.html<\/p>\n<p>Lokalinizde var olan dosyalar\u0131 kar\u015f\u0131 tarafa yani sunucuya y\u00fckleyin<br \/>\ngit add &#8211;all<\/p>\n<p>git komutu ile yap\u0131t\u0131\u011f\u0131n\u0131z y\u00fcklemeleri commit edin<br \/>\n~$git commit -m &#8220;Initial commit&#8221;<\/p>\n<p>git \u00fczerindeki t\u00fcm de\u011fi\u015fiklikleri master&#8217;a push edin<br \/>\n~$git push -u origin masterusername<\/p>\n<p>Websitesinden art\u0131k sayfan\u0131z\u0131 g\u00f6rebilirsiniz :<br \/>\n https:\/\/kullanici_adiniz.github.io<\/p>\n<p>Umar\u0131m bu ufac\u0131k bilgiyle sizlere faydam olmu\u015ftur.Size iyi GIT&#8217;lemeler :D<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bir \u00e7o\u011funuzun github dendi\u011finde ne oldu\u011funu anlamad\u0131\u011f\u0131m\u0131z\u0131 kendimden biliyorum. E\u011fer bir yaz\u0131l\u0131m departman\u0131nda \u00e7al\u0131\u015fma \u015fans\u0131n\u0131z olmad\u0131ysa zaten repository veya versioning terimlerinin size \u00e7ok uzak olmas\u0131 \u00e7ok do\u011fal. Ben uzun y\u0131llar yazd\u0131\u011f\u0131m yaz\u0131l\u0131mlar\u0131n versiyonlar\u0131na pek \u00f6nem vermedim,\u00e7\u00fcnk\u00fc d\u00fcr\u00fcst olmak gerekirse planl\u0131 programl\u0131 bir kodlama yerine on demand yani ihtiya\u00e7 durumunda bir&#8230;<\/p>\n","protected":false},"author":1,"featured_media":453,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[54],"tags":[148,146,147,14,152,149,150,151],"class_list":["post-328","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programala-dilleri-ve-programlamaya-giris","tag-commit-git","tag-git","tag-github","tag-linux","tag-mac","tag-pull-request","tag-push-request","tag-windows"],"_links":{"self":[{"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/posts\/328","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/comments?post=328"}],"version-history":[{"count":6,"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/posts\/328\/revisions"}],"predecessor-version":[{"id":454,"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/posts\/328\/revisions\/454"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/media\/453"}],"wp:attachment":[{"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/media?parent=328"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/categories?post=328"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/tags?post=328"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}