Skip to content

Instantly share code, notes, and snippets.

@asilbalaban
Last active April 23, 2017 19:08
Show Gist options
  • Save asilbalaban/8006617 to your computer and use it in GitHub Desktop.
Save asilbalaban/8006617 to your computer and use it in GitHub Desktop.
Hergün yazılım işlerimiz için git kullanıyoruz. Ancak değişiklikleri yayına almak için hala ftp kullanıyoruz. İşleri biraz hızlandırmak için, git ile production yapmaya ne dersiniz?

#Git ile production

Hergün yazılım işlerimiz için git kullanıyoruz. Ancak değişiklikleri yayına almak için hala ftp kullanıyoruz. İşleri biraz hızlandırmak için, git ile production yapmaya ne dersiniz?

Şimdi git ile production yapmak için izlenmesi gereken yolu anlatıyorum.

Uzak sunucuda yapılması gerekenler

Öncelikle production sunucumuzda bir git dosyası oluşturuyoruz (www klasörü dışında oluşturmak mantıklı olur)

mkdir -p /home/git/proje_adi.git

Klasöre gidiyoruz

cd /home/git/proje_adi.git

Klasöre eriştikten sonra boş bir repo oluşturuyoruz

git init --bare

Push edilen son kodu istediğimiz dizine taşıması için bir hook oluşturacağız.

sudo nano hooks/post-receive

ile dosyayı açıp içine aşağıdaki kodları yapıştırın, dizin olarak projenin sunucudaki tam adresini verin

#!/bin/sh
GIT_WORK_TREE=/var/www/proje_adi git checkout -f

Not: Bu dosyaya istediğiniz başka kodları da ekleyebilirsiniz, her push yapıldığında chmod ayarlarını değiştirmek veya bazı dosyaları çağırıp çalıştırmak gibi.

Az önce oluşturduğumuz post-recive hook'unu çalıştırılabilir hale getirelim

chmod +x hooks/post-receive

Uzak sunucuda yapılması gereken işlemleri tamamladık. Şimdi local makinemize geçerek gerekli ayarları yapalım.

Development ortamında yapılması gerekenler


Projenizin bulunduğu klasöre gidin

cd /var/www/proje_adi
git remote add production ssh://website.com/home/git/project_name.git

Not: Kullanıcı adınızı her seferinde yazmak istemiyorsanız ssh://username@website.com... şeklinde yazabilirsiniz.

Şimdi kodları sunucuya gönderin.

git push production +master:refs/heads/master

Eğer branch adınız master değilse değiştirebilirsiniz.

Kullanıcı şifrenizi girin. Ve yeni kodlarınız artık ftp klasöründe yerini aldı. Artık ne zaman sunucuya kodları göndermek isterseniz

git push production master

komutunu kullanmanız yeterli.

Eğer birden fazla sunucu atamak isterseniz (test yayını ve production gibi) yukardaki işlemleri tekrarlayarak

git push <remote server> <branch name>

şeklinde işleminizi gerçekleştirebilirsiniz.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment