<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Simge Şen on Medium]]></title>
        <description><![CDATA[Stories by Simge Şen on Medium]]></description>
        <link>https://medium.com/@simgesen?source=rss-5ccaa8763ecd------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*KRcEpS5Y4UyXfcuyvUXQ4Q.jpeg</url>
            <title>Stories by Simge Şen on Medium</title>
            <link>https://medium.com/@simgesen?source=rss-5ccaa8763ecd------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Tue, 21 Apr 2026 19:07:05 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@simgesen/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Ubuntu Desktop Kişiselleştirme Adımları]]></title>
            <link>https://medium.com/@simgesen/ubuntu-desktop-ki%C5%9Fiselle%C5%9Ftirme-ad%C4%B1mlar%C4%B1-5554623a9b75?source=rss-5ccaa8763ecd------2</link>
            <guid isPermaLink="false">https://medium.com/p/5554623a9b75</guid>
            <category><![CDATA[blog]]></category>
            <category><![CDATA[linux]]></category>
            <category><![CDATA[gnome]]></category>
            <category><![CDATA[ubuntu]]></category>
            <dc:creator><![CDATA[Simge Şen]]></dc:creator>
            <pubDate>Mon, 23 Mar 2020 18:55:29 GMT</pubDate>
            <atom:updated>2020-03-23T18:55:29.218Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/640/1*-xSmeaZQATDTDKf-kPbT0A.jpeg" /></figure><p>Bu yazımda farklı sebeblerden dolayı çeşitli zamanlarda Linux işletim sistemini yeniden kurmam gerektiğinde kullanışlılık ve estetik bakımından severek kullandığım, aynı zamanda da yeni öğrendiğim bazı <strong>GNOME </strong><a href="https://extensions.gnome.org/"><strong>Extension</strong></a><strong> </strong>(eklenti)leri paylaşıyor olacağım.</p><p><em>(Kullandığım linux dağıtımı Ubuntu 18.04 )</em></p><h4><strong>GNOME Tweak Tool</strong></h4><p>İlk olarak Gnome Tweak Tool yükleyerek başlayalım.</p><p>Gnome Tweak Tool ; GNOME arayüzünü değiştirmek için kullanılabilen yükleyeceğimiz temaları ve eklentileri barındıran bir araç deposu olarak tanımlandırılabilir.</p><p>GNOME Tweak Tool’u <strong>Ubuntu Software</strong>’ den veya <strong>komut satırı</strong>ndan yükleyebiliriz.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/830/1*Rp_tpBHtJGo2q6-QwFUcuQ.png" /><figcaption>Ubuntu Software — Gnome Tweak Tool</figcaption></figure><h4><strong>Tema Ayarları</strong></h4><p><a href="https://extensions.gnome.org/">GNOME extentions</a> sayfasından ‘<a href="https://extensions.gnome.org/extension/19/user-themes/">User Themes’</a> eklentisini indirelim.</p><p>İndirme işlemleri tamamlandıktan sonra Tweak Tool da sırasıyla ;</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/880/1*0ZJD8riTBFoVvcgSn2La-w.png" /></figure><p>Appearance — Applications deyip istediğimiz temayı seçebiliriz.</p><p>Tema ayarlarının ardından isteğe bağlı olarak icon,cursor durumlarını da değiştirebiliriz.</p><h4>Terminal Ayarları</h4><p>Komut satırının daha kullanılabilir olduğunu düşündüğüm <strong>‘oh-my-zsh’</strong> için kurulum adımlarını <strong>Alperen Bozkurt</strong> <a href="https://alperenbozkurt.net/Zsh-ve-ohmyzsh-kurulumu/">yazısında</a> çok güzel açıklamış. O yüzden adımları tekrar tekrar yazmaktandan ziyade o yazının okunmasını tavsiye edebilirim. :)</p><h4>Guake Terminal Kurulumu</h4><p>Guake terminali; kullanımının kolaylığı açısından ve oh-my-zsh ile birlikte kullanıldığında daha estetik ve rahat olduğunu düşündüğüm için tercih ediyorum.</p><p>Guake terminali <strong>Ubuntu Software</strong>’den indirebiliriz.</p><p>İndirdikten sonra yapmamız gereken tek şey <strong>F12</strong> tuşuna basıp terminali açmak ve yine <strong>F12</strong> tuşuna basıp terminali kapamak. Ekranın üst kısmında ve transparan olarak ayarlanabilme özelliği ve birden fazla terminal açtığımızda terminal adlarının değiştirilebilme özelliği, kod yazarken ve çeşitli işlemlerimizde büyük fayda sağlamaktadır.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*uG1UyyNR1SDxE94zZu2ARg.png" /><figcaption>Guake Terminal Örnek Görünüşü</figcaption></figure><h4>KAYNAKLAR:</h4><ul><li><a href="https://alperenbozkurt.net/Zsh-ve-ohmyzsh-kurulumu/">https://alperenbozkurt.net/Zsh-ve-ohmyzsh-kurulumu/</a></li><li><a href="https://extensions.gnome.org/">https://extensions.gnome.org/</a></li></ul><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2F7xWhgoOYzn1Ly%2Ftwitter%2Fiframe&amp;display_name=Giphy&amp;url=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2F7xWhgoOYzn1Ly%2Fgiphy.gif&amp;image=https%3A%2F%2Fi.giphy.com%2Fmedia%2F7xWhgoOYzn1Ly%2F200.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="325" frameborder="0" scrolling="no"><a href="https://medium.com/media/2125b7abca3a5296fb4c6f539b0056af/href">https://medium.com/media/2125b7abca3a5296fb4c6f539b0056af/href</a></iframe><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5554623a9b75" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Ruby on Rails ile Static Google Maps Sayfası Oluşturmak]]></title>
            <link>https://medium.com/@simgesen/ruby-on-rails-ile-static-google-maps-sayfas%C4%B1-olu%C5%9Fturmak-dea34a4b94e5?source=rss-5ccaa8763ecd------2</link>
            <guid isPermaLink="false">https://medium.com/p/dea34a4b94e5</guid>
            <category><![CDATA[google-maps]]></category>
            <category><![CDATA[rails]]></category>
            <category><![CDATA[ruby]]></category>
            <dc:creator><![CDATA[Simge Şen]]></dc:creator>
            <pubDate>Wed, 26 Jun 2019 12:19:28 GMT</pubDate>
            <atom:updated>2019-06-26T12:57:34.235Z</atom:updated>
            <content:encoded><![CDATA[<p><strong><em>Ruby on Rails ile Static Google Maps Sayfası Oluşturmak</em></strong></p><p>Acaba nasıl olur bir deneyeyim adlı fikrimle ; hemen bunu dokümantasyona çevirmeliyim adlı fikrimin bir birleşimi olan yazımı okumaktasınız. Bu yazının içeriği Ruby on Rails ile Google Maps haritasının statik olarak gösterimini içermektedir.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FTgFibAJdezKXUYsddv%2Ftwitter%2Fiframe&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2FCulturaJubile-yes-TgFibAJdezKXUYsddv&amp;image=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2FTgFibAJdezKXUYsddv%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="326" frameborder="0" scrolling="no"><a href="https://medium.com/media/8edf9fdbf9b5509deb88e878cb7a10ef/href">https://medium.com/media/8edf9fdbf9b5509deb88e878cb7a10ef/href</a></iframe><p>Öncelikle yeni bir Rails projesi oluşturalım.</p><pre>rails new GoogleMapsProject </pre><p>Harita için scaffold yapısını kullanarak iskeleti oluşturalım ve haritalar için kullanılacak enlem ve boylam değerlerini float olarak tanımlayalım.</p><pre>rails generate scaffold Area name:string latitude:float longitude:float</pre><p>Scaffold yapısı, modelimizi de barındırdığından database işlemleri için <strong>migrate</strong> komutunu kullanalım.</p><p>rails db:migrate</p><p>Buraya kadar olan işlemlerin kontrolü için rails serverı çalıştırabiliriz.</p><p>rails s</p><p>Tarayıcıya gelinip belirlenen adrese girilir.</p><pre>localhost:3000/areas</pre><p>Şimdi de google maps için Gemfile dosyasına eklenmesi gereken ‘<strong><em>gmaps4rails</em></strong>’ gemini yükleyip ;</p><pre>bundle install</pre><p>komutu çalıştırılmalıdır.</p><ul><li>Gem’in güncel sürümü için <strong><em>rubygems</em></strong> ‘ den yararlanılmalıdır.</li></ul><p>Google Maps için <a href="https://console.cloud.google.com/">adresinden</a> bir <strong>proje</strong> oluşturup projeye eklenmesi için bir <strong>Maps Javascript Api</strong> seçilip anahtar-<strong>API KEY</strong> kopyalanır.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ynjTAK6psnvS0zjK9bYXAw.png" /></figure><pre>GoogleMapsRails/app/views/layouts/application.html.erb</pre><p>dosya dizinine girilip <strong>[ your API key ] </strong>yazan yere yukarıda tanımlanan <strong>API KEY</strong> bilgisi girilir ve ilgili scriptler eklenir.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/3e82b88a2b7f0730be1b75730a444022/href">https://medium.com/media/3e82b88a2b7f0730be1b75730a444022/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9XPYcqKYb50ml7UOUUl3CQ.png" /></figure><p><strong><em>application.js</em></strong> dosyasına ;</p><pre>//= require underscore</pre><pre>//= require gmaps/google</pre><p>eklenir.</p><p>Şimdi de görünüm için view dosyasını düzenleyelim.</p><pre>GoogleMapsRails/app/views/areas/index.html.erb</pre><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/7977c9c2bad432bc12d8d5628a2de6c5/href">https://medium.com/media/7977c9c2bad432bc12d8d5628a2de6c5/href</a></iframe><ul><li>lat ve lng değerleri istenilen yerlerin görünmesi için gerekli enlem ve boylam değerlerinin koordinat bilgilerini içermektedir.</li><li>Statik görünüm için Samsun ilinin harita bilgisi gösterilmiştir :)</li></ul><p>Rails serverı çalıştırıp projenin çalışır halini görelim.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*M3R-MiKLKc7DWOycPnE6oQ.png" /></figure><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FRrVzUOXldFe8M%2Ftwitter%2Fiframe&amp;display_name=Giphy&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2Fexcited-yes-nicolas-cage-RrVzUOXldFe8M&amp;image=https%3A%2F%2Fmedia1.giphy.com%2Fmedia%2FRrVzUOXldFe8M%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="326" frameborder="0" scrolling="no"><a href="https://medium.com/media/9bba9f803d1af23fff47e9cd0d3122e0/href">https://medium.com/media/9bba9f803d1af23fff47e9cd0d3122e0/href</a></iframe><p><strong>KAYNAKLAR:</strong></p><p><a href="https://melvinchng.github.io/rails/GoogleMap.html#64-add-google-map-to-view">https://melvinchng.github.io/rails/GoogleMap.html#64-add-google-map-to-view</a></p><ul><li><a href="https://console.cloud.google.com/">Google Cloud Platform</a></li><li><a href="https://github.com/apneadiving/Google-Maps-for-Rails">apneadiving/Google-Maps-for-Rails</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=dea34a4b94e5" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Git Hooks]]></title>
            <link>https://medium.com/@simgesen/git-hooks-deb4510bc65c?source=rss-5ccaa8763ecd------2</link>
            <guid isPermaLink="false">https://medium.com/p/deb4510bc65c</guid>
            <category><![CDATA[vc]]></category>
            <category><![CDATA[hooks]]></category>
            <category><![CDATA[git]]></category>
            <dc:creator><![CDATA[Simge Şen]]></dc:creator>
            <pubDate>Fri, 31 May 2019 20:37:00 GMT</pubDate>
            <atom:updated>2019-05-31T20:37:00.306Z</atom:updated>
            <content:encoded><![CDATA[<p><strong>Git Hooks</strong></p><p><strong>Git Hooks Nedir ?</strong></p><p>Sürüm kontrol sistemi olan Git kullanımında; <em>commit, push ve receive</em> gibi komutların kullanımından önce veya sonra yürütülen özel komut dosyalarına <strong><em>‘Git Hooks’ </em></strong>adı verilir.</p><p>Git Hookslar kullanım içeriğinin değiştirilmesine ve düzenlenmesine imkan sağlarlar. Git Hooks dosyaları içindeki içerikler ve scriptler değiştirilerek projelerdeki git kullanımına ilişkin istenilen özelliklerin esnek ve kullanışlı bir yapı halini almasını sağlayabilirler.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/658/1*ccbrHYKqcQx2ZzHeZ6cjFQ.jpeg" /></figure><blockquote><strong><em>GİT HOOKS DOSYALARINA ERİŞİM</em></strong><br>Projede git sürüm kontrol sisteminin kullanıldığı varsayılarak proje dizininde klasörüne girilir.<br><em>$ cd ./git/hooks</em><br><em>$ ls</em><br>ls komutu ile listelemenin ardından git hooks özel komut dosyaları aşağıdaki gibidir :</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*q5mIgdDKJ3Rum8kRc4qnRQ.jpeg" /></figure><p><strong><em>applypatch-msg</em></strong></p><p>Commit mesaj dosyasını düzenleyebilir ve genellikle bir ek mesajının bir projenin standartlarına uygun biçimde doğrulamak veya aktif olarak biçimlendirmek için kullanılır.</p><p>git am komutu çalıştırıldığında çalışır.</p><p>Tek bir değişken alır. Bu değişken tasarlanan(önerilen) ilk commit mesaj iletisini içeren geçici dosyanın adıdır.</p><p><strong><em>pre-applypatch</em></strong></p><p>git am komutu tarafından çağrılır.</p><p>Parametre almaz ve düzeltme eki uygulandıktan sonra ancak bir işlem yapılmadan önce çağrılır.</p><p>Projenin çalışan mevcut hiyerarşisini denetlemek ve projede belirlenen bir testin geçilmemesi dahilinde commit edilmesini reddetmek için kullanılabilir.</p><p><strong><em>pre-commit</em></strong></p><p>git commit komutu tarafından çağırılır.</p><p>Parametre almaz. Commit mesajı atılmadan önce commitlerin içeriklerinin kontrol edilmesini sağlayan hooktur.</p><p>Örneğin bir senaryo kurgulayacak olursak ; bu hook etkinleştirildiğinde white space adı verilen boşluk yapısının kontrolünü yaparak bu karaktere sahip satırların girişini yakalayıp ; bu tarz atılan commitleri iptal eder veya test işlemleri için scriptler yazılarak teste uygun olmayan commit mesajlarını iptal eder.</p><p><strong><em>prepare-commit-msg</em></strong></p><p>git commit komutu çalıştırıldığında mesajın girileceği editor açılmadan önce çalıştırılır, 1 ila 3 arasında girdi alabilir:</p><p>1- mesajın bulunduğu geçici alan,</p><p>2- commit in türü (git commit ten sonra -m, -t girildiyse yada merge işlemi yapıldıysa bu bilgi olur)</p><p>3- SHA1 git commit -c olarak çağırıldıysa commitin özet değeri</p><p>Örnek bir senaryo olarak ; elektronik postalardaki otomatik imza gibi bir metnin (mesela isim soyisim gibi) bütün commit mesajlarına eklenmesi verilebilir.</p><p><strong><em>commit-msg</em></strong></p><p>git commit komutu kullanıldığında çalışır.</p><p>Bir standarda uygunluğu sağlamak veya herhangi bir kritere göre reddetmek için, düzenlendikten sonra commit mesajını ayarlamak için kullanılabilir.</p><p>Bu hooka iletilen tek argüman mesajı içeren dosyanın adıdır.<br>Commit-msg hook, Prep-commit-msg hook’a çok benzer, ancak kullanıcı bir commit mesajı girdikten sonra çağrılır.</p><p>Bu, geliştiricileri mesajlarının ekibinizin standartlarına uymadığı konusunda uyarmak için uygun bir kullanımdır. Kullanıcının girdiği mesajdan hoşlanmayan ekip lideri, bu dosyayı yerinde değiştirebilir (prep-commit-commit-msg ile olduğu gibi)</p><p><strong><em>pre-rebase</em></strong></p><p>Bu hook, git rebase komutunun herhangi bir şeyi değiştirmeden önce çağrılarak projedeki büyük sorunların ortaya çıkmasının engellenmesinde rol oynar.</p><p>Bu hook 1 ila 2 argüman alır, fork işleminde bir üst dalın ve geçerli dalın yeniden yapılandırılmasına ilişkindir. Current branch yapılandırılması rebase edilmesinde parametre değeri boştur.</p><p>Bu hooka ait bir senaryo bilgisi olarak ; rebase işlemine ne zaman izin verilip verilmeyeceğinin bilgisi söylenebilir. Yapılandırılan ve çalışılan branchın master branchla birleştirip birleştirilmeyeceğini kontrol eder ve çakışma(conflict) olduğu takdirde rebase işlemini oluşturmayı iptal eder.</p><p><strong><em>pre-receive</em></strong></p><p>git push komutu kullanıldığında çalıştırılır.</p><p>Bu hook, git push işlemi yapıldığında git-receive-pack tarafından çağrılır. Uzak sunucudaki repoları güncellemeye başlamadan hemen önce ön alım hooku başlatılır. Çıkış durumu, güncellemenin başarısını veya başarısızlığını belirler.</p><p>Herhangi bir argüman gerektirmez, ancak her bir işlem için güncellenmek üzere standart girdiden formatın bir satırını alır:<br>&lt;old-value&gt; SP &lt;new-value&gt; SP &lt;ref-name&gt; LF</p><p>Örnek bir senaryo olarak ; geliştiricilerin beğenilmeyen commit mesaj biçimlendirilmesini, yapılan içerik ve kod düzenlenmesinin beğenilmemesi dahilinde bu commitlerin ön alım ile reddedilerek projenin reposunda olması engellenir.</p><p><strong><em>update</em></strong></p><p>Bu hook pre-receive hookundan sonra çalıştırılır ve çalışma mantığı aynıdır. Eğer kullanıcı 4 branchı yollamaya çalışırsa güncelleme 4 defa yapılır.Pre-receive hookun aksine, bu hookun standart girdiden okuması gerekmez. Bunun yerine, aşağıdaki 3 argümanı kabul eder:</p><p>1- Güncellenmekte olan referansın adı<br>2- Referans içerisinde saklanan eski nesne adı<br>3- Referans içerisinde saklanan yeni nesne adı</p><p><strong><em>post-commit</em></strong></p><p>Bu hook, coomit-msg hookundan hemen sonra çağrılır. Git commit işleminin sonucunu değiştiremez, bu nedenle öncelikle bildirim amacıyla kullanılır.<br>Parametre ya da argüman almaz.</p><p>git log -1 HEAD komutu ile ; projenin master branchında olan tüm log yani atılan commit mesajlarının bilgisine ulaşılabilir.</p><p>Örnek bir senaryo olarak, her bir commit mesajının ardından ekip lideri ya da patrona e-posta göndermek istenirse bu hook kullanılabilir.</p><p><strong><em>post-checkout</em></strong></p><p>Bu hook, post-commit hookuna çok benzerdir; ancak git checkout ile bir referansı başarıyla kontrol ettiğinizde çağrılır. Bu, karışıklığa yol açacak dosyaların engellendiği için başarılıdır.</p><p>Bu hook üç parametre kabul eder ve çıkış durumunu git checkout komutunu etkilemez.</p><p>1- Önceki başlığın referansı<br>2- Yeni başlığın referansı <br>3- Eğer checkout branch komutu kullanılıyorsa 1 , dosya check işlemi mevcutsa 0 flag döndürülür.</p><p>Örneğin, tüm eklentilerin çekirdek kod tabanının dışında saklanması için bir eklenti branchı kullanılabilir. Bu eklentiler, diğer branchların ihtiyaç duymadığı çok sayıda ikili dosya gerektiriyorsa, bunları yalnızca eklentiler adına branch açılarak seçici bir şekilde oluşturulabilir.</p><p><strong><em>Local Hooks</em></strong></p><p>Local(yerel) hookslar geliştiricinin sadece kendi deposunda yaptığı değişiklerden oluşur. Dolayısıyla ekip halinde çalışılan bir projede local hooks sadece yerel depolarda yapılan değişikleri kapsayacağından ekibin tümüne etki edemez.</p><p><strong><em>En çok kullanılan local hookslar:</em></strong><br>- pre-commit<br>- prepare-commit-msg<br>- commit-msg<br>- post-commit<br>- post-checkout<br>- pre-rebase</p><blockquote>pre ön komutlu hookslar gerçekleşmek üzere olan hareketin değiştirilmesine izin verirken ; post ön komutlu hookslar yalnızca bildirimler(notifications) için kullanılır.</blockquote><blockquote><strong>ÖNEMLİ</strong> ; bir bilgi olarak eğer bu dosyaların içerikleri değiştirilecekse .sample uzantılı dosyaların kaldırılması gerekmektedir. Aksi halde .sample uzantılı dosyalar varsayılan olarak kabul görülüp yapılan değişiklikler geçerli olmayacaktır.</blockquote><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FMF1kR4YmC2Z20%2Ftwitter%2Fiframe&amp;url=https%3A%2F%2Fgiphy.com%2Fgifs%2F90s-computer-MF1kR4YmC2Z20&amp;image=http%3A%2F%2Fgiphygifs.s3.amazonaws.com%2Fmedia%2FMF1kR4YmC2Z20%2Fgiphy-facebook_s.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="332" frameborder="0" scrolling="no"><a href="https://medium.com/media/3d44dd5412b901cf2e4503b45cf01c00/href">https://medium.com/media/3d44dd5412b901cf2e4503b45cf01c00/href</a></iframe><p>KAYNAKLAR :</p><p><a href="https://www.atlassian.com/git/tutorials/git-hooks#server-side-hooks">Git Hooks | Atlassian Git Tutorial</a></p><p><a href="https://git-scm.com/book/pl/v2/Customizing-Git-Git-Hooks">https://git-scm.com/book/pl/v2/Customizing-Git-Git-Hooks</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=deb4510bc65c" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>