#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.
Ö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.
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://[email protected]... ş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.