GitHub nasıl kullanılır?

Nasıl kullanılırdan çok ne için kullanmak istiyorsun, bu önemli.

Kodlarını paylaşmak mı istiyorsun?
Kodlarını arşivlemek mi istiyorsun?
GitHub üzerinden proje mi başlatmak istiyorsun?
Herhangi bir pakete ya da projeye dahil mi olmak istiyorsun?

Kodları arşivlemek istiyorum.
 
Nasıl kullanılırdan çok ne için kullanmak istiyorsun, bu önemli.

Kodlarını paylaşmak mı istiyorsun?
Kodlarını arşivlemek mi istiyorsun?
GitHub üzerinden proje mi başlatmak istiyorsun?
Herhangi bir pakete ya da projeye dahil mi olmak istiyorsun?

Hocam, siz burada kişiyi biraz kısıtlamış oluyorsunuz sanki. Kişi kullanımını hiç bilmediği için neler yapılabileceğini de bilmiyordur. Eğer başk şeylerin de nasıl yapıldığını bilirse onları da yapmak isteyebilir. Örneğin, projeye dahil olmak sorusunu korkutucu bir şeymiş gibi algılayabilir. Ya da kodları paylaşmayı kötü bir şeymiş gibi görebilir. Konu sahibi belki bunları biliyordur ancak bilmeyenler illa ki vardır.
 
Kodları arşivlemek için repository yaratabilirsin.

GitHub hesabı oluşturduktan sonra, private ya da public repository oluşturarak kodlarını ekleyebilirsin. Ben Pro olarak kullanıyorum ama Private seçeneği normalde de varmı hatırlamıyorum. Ancak öğrenciysen Pro üyeliği alman kolay.


Hocam, siz burada kişiyi biraz kısıtlamış oluyorsunuz sanki. Kişi kullanımını hiç bilmediği için neler yapılabileceğini de bilmiyordur. Eğer başk şeylerin de nasıl yapıldığını bilirse onları da yapmak isteyebilir. Örneğin, projeye dahil olmak sorusunu korkutucu bir şeymiş gibi algılayabilir. Ya da kodları paylaşmayı kötü bir şeymiş gibi görebilir. Konu sahibi belki bunları biliyordur ancak bilmeyenler illa ki vardır.

Haklısın ama nasıl kullanılır sorusu ucu çok açık bir soru. Yani ne diyebilirim ki. Şahsen ben, kullanamdan önce gidip dökümantasyonunu ve örnek kullanımları araştırmıştım. Avantajları - dezavantajları falan. Direkt gidip bir foruma ya da platforma sorup kolaya kaçmamıştım.

GitHub, kabaca insanların birbirleriyle kod üzerine etkileşimde bulunduğu bir platform. Ancak bundan fazlası var. Nasıl anlatayım ki bunu. Kendisinin bana ne yapmak istediğini söylemesi lazım. :D

Mesela yazdığım kod için yardım istiyorum, bu nedenle üye olacağım dese, GitHub yerine Stack'ı öneririm.
 
Arch tabanlı dağıtımın topluluk üyesi iken GitLab üyeliğim bulunuyor ama GitLab olsun GitHub olsun herhangi bir bilgiye sahip değilim. Nedense üzerinde araştırma yapmadım, bence bu önemli bir eksiklik. Lakin GNU/Linux ortamında her şeye yetişemiyorsun, yüz binlerce yazılım bir o kadar proje, 3 bin civarında dağıtım. Bunların hepsini araştırmak, takip etmek, test etmek falan bir ömür bile yetmez.
 
Git protokolu merkezi + local repository mantigiyla calisir. Diger SCM protokollerinin aksine kod butunuyle merkezde toplanmaz.

Kisilerin kendi local repository si olur. Commit islemi buraya yapilir ve local repo degisir.

Local reponun tanimlanmis bir ya da birden fazla remote kaynagi olur. Mevcut degisiklik buraya push edilir ya da pull edilir.

Her dosyadaki degisiklik git tarafindan indexlenmez. Oncelikle bu degisiklikleri `git add` yaparak version control'e register etmen gerekir.

Ek olarak .gitignore araciligi ile regex paternleri belirleyebilir, oto index saglayabilirsin.

Indexledigi dosyalarda yapilan degisikliklerin stage edilmesi gerekir. Bu bir nevi `bu dosyayi degistirdim, haberin olsun` demektir. Senin haberin olmadan degisen dosyalar da olabilir. Cogu tool bu stage isini otomatize eder.

Dosyalar remote a gonderilirken `delta graph` cikarilarak gonderilir. Sadece yapilan degisiklikler gonderilir, dosyanin tamami gonderilmez. 1 milyon satirlik dosyaya 1 satir eklediysen sadece 1 satirlik data gonderirsin.

Bu degisiklikler loglanarak tutulur, git log adi verilir. Bir dosyanin son hali degisim loglarinin yani deltalarin process edilmesiyle elde edilir. Bu mekanizma istedigin versiyona geri donmeni saglar. Yani bir dosya 178 defa degistiyse, 2 hafta onceki haline geri donmek icin Git'in tek yapmasi gereken 2 hafta onceki son degisime kadar olan delta'yi process etmesidir.Yazilim muhendisliginde bu paterne "event source" adi verilir. Bolca kullaniriz. Event Sourcing pattern - Cloud Design Patterns

Git ile versiyonladigin hicbir sey yok olmaz. Dosya silmek de bir log islemidir ve geri dondurulebilir. ( Geri dondurmeyi imkansiz kilmanin da yollari var )

Yeni baslayan birinin ogrenmesi gereken komutlar genelde:
git init
git add <dosya>
git commit -m <commit mesaji>
git remote add <repo>
git pull
git push

Seklinde.

Github, Bitbucket vs gibi ortamlar aslinda merkezi otorite gorevini ustlenirler, calisan protokol aynidir tumuyle. Kendin lokal makineni de "github" gibi merkezi hale getirebilirsin. Bazi sirketler boyle yaparlar kod disari cikmasin diye.

Git protokolunu yazan Linux Torvalds dir ayrica. Linux yetmemis dayiya.
 

Yeni konular

Geri
Yukarı