Bu kaynak size ait olmayan açık kaynaklı bir repo'ya PR açmanız için adımları tanımlar.
- Projenin ana repository'si https://github.com/acikkaynak/eczane-frontend adresinde bulunmakta. Ancak geliştiricilerin bir çoğunun bu repo'ya write-access'i bulunmamakta. Bu durumda bu reponun kendisini clone'layabilsek bile, burada halihazırda bulundan bir branch'e push yapmamız ya da yeni bir branch açıp ona push yapmamız mümkün değil ve bu noktada, standart günlük işimizde ilerlediğimiz adımlara ekstra bir kaç şey yapmamız gerekiyor.
- İlk adım projeyi kendi github adresimize forklamak olmalı. Kendi adresimizde bulunan repo'da her türlü access'e sahip olacağımız için yukarda belirtilen sorunlarla karşılaşmayacağız. Projenin adresinde sağ üstte bulunan
Fork
butonuyla kolayca fork'layabilirsiniz. Her developerın sadece bir kez yapması gereken bir adım.
- İkinci adım kendi adresimize fork'ladığımız remote repo'yu local'e almak olacak. Bu standart bir clone'lama işlemi. Sadece reponun kendisini değil de fork'unu clonu'luyoruz.
- Projenin ana branch'inden (main), o an yaptığımız task'ı belirtecek kısa bir isimle yeni bir branch oluşturuyoruz ve geliştirmeleri bu branch'te yapıyoruz. Geliştirmeler uzun sürecek ise, daha kısa hale getirip daha sık commit'ler ve PR'lar açmak, özellikle hızlı ilerlemesi gereken projelerde daha avantajlı olacak.
- Her bir kaç saatte bir (gerektiğinde daha sık) main branch'ini kendi çalıştığımız branch'e merge'lemek, conflict oluşturmamak ve oluşanları küçük küçük çözmek için önemli. Bu kısımda yine normalde yaptığımız
git fetch
-git merge
ikilisi tek başına işe yaramayacak çünkü bizim origin'imizde (fork'ladığımız repo) bizden başka çalışan yok. - Bu durumda "fetch - merge" öncesi, ana repoyla forkladığımız repoyu sync etmemiz gerekmekte. Bunun için fork'ladığımız reponun adresine gidip,
Sync Fork
butonuyla kolayca ana repodaki değişiklikleri kendi repomuza almış olacağız. Yani main'e X kişisinin yaptığı katkı, fork'ladığımız reponun main branch'ine de geçecek. - Bu adımın arkasından "pull" veya "fetch - merge" kullanarak (burada origin/main'i kendi çalıştığımız branch'e merge ediyoruz ve oluştuysa conflict'leri o an çözüyoruz), ana repodaki değişiklikleri kendi branch'imize almış oluyoruz.
- Geliştirme tamamlandığında, fork'ladığımız repoda kendi branch'imize push'luyoruz ve ana repo'da main'den önde olup olmadığımızı kontrol ederek (sync adımı), ana reponun adresine gidiyoruz. Ana reponun adresinde zaten fork'lanmış bir repodaki hareketi github algıladığı için, PR açmamız için bizi büyük bir yeşil buton karşılıyor ve burada fork'lanan reponun branch'inden, ana reponun ana branch'ine (main) PR'ımızı açıyoruz.
- PR'ımız merge'lendiğinde, sync ederek devam ediyoruz.
- Açılan PR'larda sağ altta yer alan
Allow edit by maintainers
ı işaretleyiniz.
- Conflict içeren bir PR açmamak.
- Çok uzun sürecek task'ları küçük task'lara ve branch'lere bölmek.
- En fazla her saatte bir sync işlemini yapmak (aksi sizi yorar)
- Açıklayıcı commit mesajları. 50 karaktere kadar kullanın, zararı olmaz.
- Küçük commit'ler. Review için faydası olur. Her adımınızı tek tek review etmek daha kolay olacak.