Git Flow bir git eklentisidir(extensiondır). Git flow eklentisi sayesinde projelerinizi bir ALM ile proje geliştirir gibi geliştirmeniz mümkün. Zira Visual Studio ortamında projenizi geliştiriyorsanız Visual Studio Git Flow eklentisini de kurmanız işinizi çok kolaylaştıracaktır. Eğer projenizi Visual Studio ortamında geliştiriyorsanız Visual Studio Git Flow Kurulumu makalesini takip ederek kurulumu yapabilirsiniz.
Git flow konusunu çok büyük bir konudur. Bir makalede anlatılması da çok zordur. Zira konuya giriş yaptıktan sonra siz de bunu anlayacaksınız. O yüzden bu makaleye başlamadan önce Git Flow Nedir? makalesini okumanızı tavsiye ederim. Bu makaleyi okuduktan sonra Git Flow konusundan altyapı bilgisine sahip olacaksınız.
Bu makalemin amacı ise git flow ile yeni bir projenin nasıl oluşturulduğunu anlatmak ve projeye başlayabilmek için başlangıç ayarlarını yapmaktır. Projeyi oluşturduktan sonraki ayarlar derken ise master, feature, hotfix, support, ve bugfix branch başlıklarının ayarlarıdır.
Öncelikle Git Flow projesi oluşturmakla başlayalım.
Normal git'te proje oluşturmak için git init kullanılırkan Git Flow'da proje oluşturmak için kullanılan komur Git Flow Init komutudur. Bu komutu çalıştırdıktan sonra Git Bash ekranındaki bütün ayarları size vereceğim ve sonra da buna göre açıklamaları yapacağım.
$ git flow init
Initialized empty Git repository in C:/Users/Agha/Desktop/localPublish/.git/
No branches exist yet. Base branches must be created now.
Branch name for production releases: [master]
Branch name for "next release" development: [develop]
How to name your supporting branch prefixes?
Feature branches? [feature/]
Bugfix branches? [bugfix/]
Release branches? [release/]
Hotfix branches? [hotfix/]
Support branches? [support/]
Version tag prefix? [] v
Hooks and filters directory? [C:/Users/Agha/Desktop/localPublish/.git/hooks]
Yukarıda ilk önce git flow init komutunu çalıştırıyorum ve bu komut bulunduğu klasör için bana git flow projesi oluşturuyor. Bu işlemden sonra sırasıyla master ve develop branchlerinin isimlerini girmemi istiyor. Burada ben değişiklik yapmadan varsayılan ayarlarda bırakıyorum. Eğer değiştirmek isterseniz git glow int komutunu çalıştırdıktan sonra paylaştığımı tüm satırlar tek tek soruluyor ve bunlara göre branchler ayarlanıyor.
Genel olarak gördüğüm git flow kullanan herkesin varsayılan ayar olarak yukarıdaki ayarları kullanması ve sadece Version tag prefix için v başlayan ayar yapmalarıdır.
How to name your supporting branch prefixes? sorusu ise ise bize ilgili branchlerin hangi sözle başlayacağını belirtmek içindir. Örneğin feature branch için feature/ girildiğinde ve biz agha ismiyle yeni featur branchi oluşturduğumuzda bu branchin asıl ismi feature/agha branchi olacaktır.
Yani özetle bu ayarlar da branch isimlendirmesinin daha tutarlı ve sabit bir yapıda yapılmasını sağlamak içindir. Bunun dışında eğer git flow destekli GUI'lerden birini kullanmaya başladığınızda da projeyi oluşturduktan sonra bu programların da branchleri bu isim yapısına göre oluşturduğunu göreceksiniz.
Son olarak git flow ile daha etkili çalışabilmek için bir kaç tüyo da vermek istiyorum. Source Tree, Visual Studio, TortoiseGit gibi programların hepsi git flow yapısını destekler. Hatta Jıra kullanıyorsanız Git Flow için de extension'ı bulunmaktdır. Git flow ile daha etkili çalışabilmek için öncelikle komut satırını kullanarak altyapıyı iyice öğrenin. Bundan sonra GUI'lerle devam edin. Çünkü bu öyrenme metodu direk GUI'leri kullanarak öğrenmekten daha iyidir ve altyapınız da sağlam olur ve GUI'lerin eksik kaldığı yerlerde mudahele edebilirsiniz.
Örneğin çokça karşılaştığımı sıkıntılardan bir tanesi Visual Studio Team Explorer'ın branchler arasında geçiş yaparken değişiklik sayısının çok fazla olduğu durumlarda hata vermesidir. ve aynı zamanda mevcut branchleri de bozabilmesidir. Bu gibi durumlarda hemen git reset --hard gibi bir komut kullandıktan sonra git checkout yapabilmek için mutlaka komut satırında da git'i kullanabilmek önemlidir.
Bir diğer önemli Git flow konusunda geçmeden önce Git Server konusunda hakim olmaktır. Eğer bu konuda bilginiz yoksa en başa dönmeniz ve Git Server konusunda iyice öğrenmeniz gerekiyor. Bloğumda da bu konuyla alakalı bir kaç makale bulunuyor ve sizin Git Server konusunu öğrenmenize yetecek kadar bilgi bulunuyor.
Konuyla alakalı sorularınız olursa sormaktan çekinmeyin. En kısa sürede yanıtlamaya çalışacağım...
Git flow konusunu çok büyük bir konudur. Bir makalede anlatılması da çok zordur. Zira konuya giriş yaptıktan sonra siz de bunu anlayacaksınız. O yüzden bu makaleye başlamadan önce Git Flow Nedir? makalesini okumanızı tavsiye ederim. Bu makaleyi okuduktan sonra Git Flow konusundan altyapı bilgisine sahip olacaksınız.
Bu makalemin amacı ise git flow ile yeni bir projenin nasıl oluşturulduğunu anlatmak ve projeye başlayabilmek için başlangıç ayarlarını yapmaktır. Projeyi oluşturduktan sonraki ayarlar derken ise master, feature, hotfix, support, ve bugfix branch başlıklarının ayarlarıdır.
Öncelikle Git Flow projesi oluşturmakla başlayalım.
Normal git'te proje oluşturmak için git init kullanılırkan Git Flow'da proje oluşturmak için kullanılan komur Git Flow Init komutudur. Bu komutu çalıştırdıktan sonra Git Bash ekranındaki bütün ayarları size vereceğim ve sonra da buna göre açıklamaları yapacağım.
$ git flow init
Initialized empty Git repository in C:/Users/Agha/Desktop/localPublish/.git/
No branches exist yet. Base branches must be created now.
Branch name for production releases: [master]
Branch name for "next release" development: [develop]
How to name your supporting branch prefixes?
Feature branches? [feature/]
Bugfix branches? [bugfix/]
Release branches? [release/]
Hotfix branches? [hotfix/]
Support branches? [support/]
Version tag prefix? [] v
Hooks and filters directory? [C:/Users/Agha/Desktop/localPublish/.git/hooks]
Yukarıda ilk önce git flow init komutunu çalıştırıyorum ve bu komut bulunduğu klasör için bana git flow projesi oluşturuyor. Bu işlemden sonra sırasıyla master ve develop branchlerinin isimlerini girmemi istiyor. Burada ben değişiklik yapmadan varsayılan ayarlarda bırakıyorum. Eğer değiştirmek isterseniz git glow int komutunu çalıştırdıktan sonra paylaştığımı tüm satırlar tek tek soruluyor ve bunlara göre branchler ayarlanıyor.
Genel olarak gördüğüm git flow kullanan herkesin varsayılan ayar olarak yukarıdaki ayarları kullanması ve sadece Version tag prefix için v başlayan ayar yapmalarıdır.
How to name your supporting branch prefixes? sorusu ise ise bize ilgili branchlerin hangi sözle başlayacağını belirtmek içindir. Örneğin feature branch için feature/ girildiğinde ve biz agha ismiyle yeni featur branchi oluşturduğumuzda bu branchin asıl ismi feature/agha branchi olacaktır.
Yani özetle bu ayarlar da branch isimlendirmesinin daha tutarlı ve sabit bir yapıda yapılmasını sağlamak içindir. Bunun dışında eğer git flow destekli GUI'lerden birini kullanmaya başladığınızda da projeyi oluşturduktan sonra bu programların da branchleri bu isim yapısına göre oluşturduğunu göreceksiniz.
Son olarak git flow ile daha etkili çalışabilmek için bir kaç tüyo da vermek istiyorum. Source Tree, Visual Studio, TortoiseGit gibi programların hepsi git flow yapısını destekler. Hatta Jıra kullanıyorsanız Git Flow için de extension'ı bulunmaktdır. Git flow ile daha etkili çalışabilmek için öncelikle komut satırını kullanarak altyapıyı iyice öğrenin. Bundan sonra GUI'lerle devam edin. Çünkü bu öyrenme metodu direk GUI'leri kullanarak öğrenmekten daha iyidir ve altyapınız da sağlam olur ve GUI'lerin eksik kaldığı yerlerde mudahele edebilirsiniz.
Örneğin çokça karşılaştığımı sıkıntılardan bir tanesi Visual Studio Team Explorer'ın branchler arasında geçiş yaparken değişiklik sayısının çok fazla olduğu durumlarda hata vermesidir. ve aynı zamanda mevcut branchleri de bozabilmesidir. Bu gibi durumlarda hemen git reset --hard gibi bir komut kullandıktan sonra git checkout yapabilmek için mutlaka komut satırında da git'i kullanabilmek önemlidir.
Bir diğer önemli Git flow konusunda geçmeden önce Git Server konusunda hakim olmaktır. Eğer bu konuda bilginiz yoksa en başa dönmeniz ve Git Server konusunda iyice öğrenmeniz gerekiyor. Bloğumda da bu konuyla alakalı bir kaç makale bulunuyor ve sizin Git Server konusunu öğrenmenize yetecek kadar bilgi bulunuyor.
Konuyla alakalı sorularınız olursa sormaktan çekinmeyin. En kısa sürede yanıtlamaya çalışacağım...
Yorumlar
Yorum Gönder