Kategoriler
Programlama

Git : Sürüm Kontrol Sistemi

Sürüm kontrol sistemi Git, kurulum ve kullanımı.

Git, açık kaynaklı olarak geliştirilmeye devam eden bir versiyon (sürüm) kontrol sistemidir. Bir programın ortaya çıkması ve geliştirilmesi bir sürecin sonucudur. Versiyon kontrol sistemleri ise bu sürecin doğru şekilde yürütülmesine yardımcı olur.

Git kullanabilmek için öncellikle bilgisayarınıza kurmanız gereken küçük bir yazılımı var. git-scm.com adresi üzerinden işletim sisteminize uygun güncel sürümü indirip kurabilirsiniz.

Linux (Ubuntu) Git Kurulumu

Ubuntu işletim sistemi kullanıyorsanız aşağıdaki komutları sırasıyla çalıştırarak git kurulumunu gerçekleştirebilirsiniz.

sudo apt update
sudo apt install git -y

Kurulumun başarılı olup olmadığını aşağıdaki komutu çalıştırarak test edebilirsiniz.

git --version

yukarıdaki komut kurulum başarıyla gerçekleştiyse aşağıdakine benzer bir çıktı üretir.

git version 2.33.0

Windows Git Kurulumu

Windows işletim sistemi için git kurulumu yapmak sıradan bir program kurmaktan çok farklı değildir. Ancak kurulum sihirbazı bazı kullanım ayarlarını kurulum sırasında isteyecektir.

GNU GPL 2 Lisansı “Next” diyerek kabul ediyoruz.
Kurulumun Yapılacağı Dizin Yolu
Yükleme Seçenekleri
Windows Başlangıç Menüsüne eklenecek kısayol için dizin adı
Git için kullanılacak varsayılan editör. Ben VS Code seçtim ancak siz Vim olarak bırakabilirsiniz.
“git init” komutu için varsayılan dal (branch) adı
Git’i neyle kullanacaksınız?

Burada üstteki “Use Git from Git Bash only” seçeneği sadece Git Bash üzerinden Git kullanımına izin verir. Alttaki “Use Git and optional Unix tools from the Command Prompt” seçeneği ise komut satırı ve Unix araçları ile Git kullanımına izin verir.

Ortadaki “Git from the command line and also from 3rd-party software” seçeneği ise komut satırı ve 3. parti yazılımlar ile Git kullanımına izin verir. Yardımcı ek yazılımları kullanabilmek için bu seçeneği seçmenizi tavsiye ediyorum.

Dahili (Paketlenmiş) mi? Harici OpenSSH mı kullanacağınızı seçin?
Kullanılacak SSL kütüphanesini seçin.
Windows tarzında doğrula, Unix tarzında işle
Terminal olarak MinTTY mi Windows konsolu mu kullanılsın?
“git pull” komutunun varsayılan davranışını seçin.
Kimlik bilgilerini yapılandırma yardımcısını seçin.
Ekstra yapılandırmalarda Dosya Önbellek Sistemini aktif yapıyoruz.
Bunlar deneysel özellikler olduğu için sorun çıkarabilir o yüzden ikisini de aktif etmiyoruz.

Buradan sonra kurulum işlemi başlayacaktır. Genellikle birkaç saniye içinde biten hafif bir kurulumu vardır. Kurulum tamamlandıktan sonra aşağıdaki ekran gelir.

Launch Git Bash seçeneğini işaratleyerek “Finish” deyin.

Açılacak olan komut paneli Git Bash olarak adlandırılan komut penceresi ya da konsoludur. Aşağıdaki ekrandakine benzer bir görüntüsü vardır.

git –version

Git Ayarlarının Yapılması

Git kullanımına geçmeden önce, hangi işletim sistemini kullanırsanız kullanın kurulumu yaptıktan sonra isim ve mail adresi bilginizi yapılandırma olarak bildirmeniz gerekiyor. Bu özellikle birden fazla kullanıcının çalıştığı projelerde bir değişikliğin kimin tarafından yapıldığını anlamayı sağlar.

İsim bilgisini yapılandırmak için aşağıdaki komutu tırnak içindeki isim bilgisini değiştirerek verebilirsiniz.

git config --global user.name = 'Muhammet'

Yukarıdakine benzer şekilde mail bilgisini de yine tırnakların içindeki mail bilgisini değiştirerek tanımlayabilirsiniz.

git config --global user.email = 'info@muhammetsafak.com.tr'

Diğer yapılandırmalarda değiştirmek istediğiniz bir ayar varsa yine aynı mantıkta değiştirebilirsiniz. Git tarafından kullanılan yapılandırmaların tümünü görmek için aşağıdaki komutu kullanabilirsiniz.

git config --list

Git Kullanımı

Çalışma Dizini; bilgisayarımızda projenin bulunduğu ve çalışma yapacağımız dizindir.
Geçiş/İndis Bölgesi; Git tarafından takip edilen dosyaları ve yapılan değişiklikleri barındıran alandır.
Yerel Repo; Sürümlerin tutulduğu (çalışma bilgisayarı üzerinde) alandır.
Uzak Repo; Sürümlerin tutulduğu (server üzerinde) alandır.

.gitignore Dosyası

Çalışma dizini içerisinde dosyalar üzerinde yapacağınız değişiklerin, Git tarafından izlenmemesi (geçiş bölgesine gönderilmemesi) ve repoya gönderilmemesi (commit edilmemesi) için Git’e bildirilmelidir. Bu bildirimi .gitignore dosyası yapar.

Not : Bir şeye dikkat etmeniz gerekiyor. Dosya adı olmayan, uzantısı gitignore olan bir dosyadan bahsediyorum.

Örneğin proje içerisinde çalışma alanınızda logların tutulduğu log.txt isimli bir dosyanız ve /logs/ diye bir dizininiz var ve haliyle bu log.txt dosyasının ve /logs/ dizininin git tarafından izlenmesini ve repoya gönderilmesini istemiyoruz. Ayrıca “.log” uzantılı dosyalarında izlenmesini istemediğimizi düşünelim. Öyleyse .gitignore dosyasının içeriği aşağıdaki gibi olmalıdır.

logs/
log.txt
*.log

Şimdi hangi dosyaların Git tarafından izlenmeyeceğini bildirdiğimize göre artık Git için bir çalışma dizini tanımlayabiliriz.

Git Komutları

Git kullanımı için çeşitli ücretli ya da ücretsiz 3. parti yazılımlar bulunsa da temel kullanım şekli Git Bash ya da farklı bir terminal üzerinden komutlar aracılığıyladır.

Çalışma Dizinini Tanımlama

Bir dizini Git çalışma dizini olarak belirlemek için, ilgili dizinde Git Bash’i çalıştırın ve aşağıdaki komutu verin.

git init

Not: Terminal üzerinden bir klasöre ya da dizine nasıl ulaşacağınızı bilmiyorsanız. cd komutunu kullanabilirsiniz. Örneğin çalışma dizinim C:/Projects/DenemeProjesi şeklinde olduğunu varsayarak vereceğiniz komut: cd C:/Projects/DenemeProjesi şeklinde olmalıdır. Terminalin hali hazırda hangi dizinde çalıştığını pwd komutunu vererek öğrenebilirsiniz.

Durum Sorgulama (status)

Çalışma dizinindeki durumu sorgulamak için;

git status

komutu kullanılır.

Bu komut çalışma dizini içinde yapılan değişiklikleri içeren bir çıktı üretir. Yeni oluşturduğunuz dosyalar varsa bunlar Untracked yani izlenmeyen dosya olarak gösterilir.

Not : .gitignore dosyası ile bildirilmiş olan dosya ve dizinler burada gösterilmeyecektir.

Geçiş Bölgesine Ekleme (add)

İzlenmeyen dosyaların Git tarafından izlenmesini sağlamak için bunları Geçiş ya da İndis bölgesine eklemeniz gerekir. Bu işlem için;

git add .

komutu kullanılır.

Yukarıdaki komutta nokta “.” dizin içerisindeki her şeyi ifade eder. Tek bir dosyayı geçiş bölgesine eklemek için;

git add deneme.txt

şeklinde tek bir dosyayı geçiş bölgesine de ekleyebilirsiniz.

Çalışma dizini içerisinde yapılan tüm işlemleri geçiş bölgesine göndermek için -A bayrağı kullanılır.

git add -A

Yeni Bir Sürüm Oluşturmak (commit)

Yeni bir sürüm oluşturma ya da başka bir ifadeyle commit etmek, geçiş bölgesindeki dosyaları ve yapılan değişiklikleri yerel repo içerisine atmak için;

git commit -m 'ilk commit islemi'

komutu verilir.

Bu komutta -m sonrasında tırnaklar için yapılan commit işlemi için tanımlayıcı bir açıklama girmeyi alışkanlık haline getirin. Böylece geri dönmek istediğinizde hangi committe ne işlem yapıldığını kolayca anlayabilirsiniz.

Dosyayı Geçiş Bölgesinden Geri Alma

Bazı durumlarda geçiş bölgesindeki bir dosyayı tekrar çalışma dizinine almak isteyebiliriz. Bu durumda geçiş bölgesindeki dosyayı yeniden çalışma dizinine almak için;

git restore --staged dosyaadi.txt

Yerel Repodaki Son Sürüme Geri Dönme

Bir dosya üzerindeki yaptığınız değişiklikleri iptal ederek dosyanın yerel repodaki son sürümünü geri almak isterseniz;

git restore dosyaadi.txt

komutunu verebilirsiniz.

Önceki Commit İşlemlerini Görme

Projenizde yapılmış son commit işlemini görmek için;

git show

komutunu kullanabilirsiniz. Bu commit edilen son işlemi gösterecektir.

Yapılan tüm commit işlemlerini görmek için;

git log

komutunu kullanabilirsiniz. Bu şimdiye kadar yapılan tüm commit işlemlerinin tutulduğu log bilgisini çıktılayacaktır.

Commit tarihi, commit eden kişi gibi bilgileri görüntülemek istemiyorsanız --oneline ekleyebilirsiniz.

git log --oneline

Yukarıdaki komut yapılan commit işlemlerini tek bir satır şeklinde listeleyecektir.

Belli bir zaman öncesine kadar yapılan commit işlemlerini görmek için;

git log --since=10minutes

yukarıdaki komut son 10 dakika içerisinde yapılan commitleri çıktılayacaktır.

--since=5hours : 5 saat
--since=3days : 3 gün
--since=2weeks : 2 hafta

Sürümler Arasında Geçiş

Proje içerisinde commit edilmiş önceki sürümlerden herhangi birine dönmek isterseniz;

git checkout 72c32bb

komutunu kullanabilirsiniz. Bu komutta kullandığım 72c32bb geri dönmek istediğim commit’in kısa kimlik bilgisidir. Örnek işlemin ekran görüntüsü :

Son Sürümüne Dönme

Örneğin önceki bir commit sürümüne döndünüz ama sonrasında kararınızı değiştirdiniz ve yaptığınız tüm değişiklikleri vs. geri getirmek istiyorsunuz. Yani projenin commit edilmiş son sürümüne “master” dönmek istiyorsunuz.

git checkout master

Bir Commit Sürümünde Yapılan Değişiklikleri İptal Etmek

Bazı durumlarda bir commit sürümüne dönmek değil de bir commit sürümünde yapılan değişikliği iptal etmek isteyebilirsiniz.

git revert 72c32bb

bu komut 72c32bb kimlikli commit işleminde yapılan değişiklikleri iptal eder.

Not : Bu işlem geri dönmek değil, belirtilen committe yapılan işlemleri iptal etmektir.

Bu komut git kurulumu sırasında belirttiğiniz editörü açarak revert işlemi için commit mesajını düzenleyebilmeniz için açar. Ben VS Code olarak belirttiğim için bende VS Code ile açıldı. Aşağıdaki resimde gördüğünüz ilk satır commit mesajıdır. Burada yapılan işlem için bir commit mesajı yazarak dosyayı kaydedip kapatabilirsiniz.

Yapılan Tüm Commitleri İptal Etmek

Dikkat : Bu komut geri alınamaz şekilde yapılan ilk commit sürümüne dönüş yapar. Sonrasında geri almak mümkün olmadığı için bu komutu vermeden önce en az iki kez düşünmenizi tavsiye ederim.

Commit edilmiş tüm sürümleri iptal etmek ve ilgili sürüme kesin şekilde dönüş yapmak için reset komutu kullanılır.

reset komutunun kullanımına geçmeden önce bilmeniz gereken
--soft : Yerel repoyu geri alınamaz şekilde ilgili commite döndürür, çalışma ve geçiş alanına dokunmaz.
--mixed : Yerel repo ve geçiş alanını geri alınamaz şekilde ilgili commite döndürür. Çalışma alanına dokunmaz.
--hard : Her şeyi geri alınamaz şekilde ilgili commite döndürür.

72c32bb kimlikli commite kalıcı olarak dönmek için reset komutunun kullanımı;

git reset --soft 72c32bb

Git Dalları (Branch)

Projenin farklı geliştirmeler için farklı dallara ayrılarak daha sonra ana dala (master) dahil edilebilmesini sağlayan yapıdır.

Biraz karmaşık gelmiş olabilir. En basit şekliyle şöyle örneklendirebilirim. Bir internet projesi geliştirdiğimizi düşünelim. Bu projenin front-end tarafını bir geliştirici, back-end tarafını başka bir geliştirici geliştiriyor olsun. Her ikisinin ana (master) dal üzerinde çalışması yerine kendileri için oluşturulan dallarda çalışmaları ve daha sonra gerekli kontroller yapılarak ana (master) dala dahil edilmeleri daha hatasız bir geliştirme süreci sunacaktır.

Yeni Dal (Branch) Oluşturma

Mevcut daldan yeni bir dal oluşturmak için branch komutu sonrasında oluşturulacak dalın adı yazılarak kullanılır. Örneğin bir backend dalı oluşturmak için;

git branch backend

komutu kullanılır.

Tüm Dalları Listeleme

Oluşturulmuş dalların bir listesini almak için branch komutuna -a bayrağı verilir.

git branch -a

Bir Dala Geçmek

Dallar arasında geçiş yapmak için checkout komutuna geçilmek istenilen dal adıyla birlikte kullanılır. Örneğin backend isimli dala geçmek için;

git checkout backend

Bir dal oluşturmak ve oluşturulan dala otomatik geçiş yapmak için checkout komutuna -b bayrağı eklenir.

git checkout -b cssfeature

Dal İçinde Yapılan Değişiklikleri Commit Etme

Dal içerisinde yapılan değişiklikleri commit etme işlemi yine add ve commit komutları ile gerçekleştirilir.

Bir branch içerisindeki commitler diğer dalları etkilemez.

Not : Dikkat etmeniz gereken şey bir dal içerisinde gerçekleştirdiğiniz commit işlemi ana (master) dal ve diğer dallarda bir şeyi değiştirmez.

Dalları Birleştirme (merge)

Dallar içerisinde commit edilmiş değişiklikleri bulunduğunuz dala birleştirmek için merge komutu kullanılır.

Örneğin master branch içerisindeyim; frontend ve backend branchlerindeki commitleri bulunduğum branch içerisine dahil etmek yani birleştirmek istiyorum.

git merge frontend backend

Bir Dalı Silmek

Bir dalı oluşturdunuz ve o dalla işiniz bitti, silmek istiyorsanız branch komutuna -d bayrağı ekleyerek istediğiniz dalı silebilirsiniz.

git branch -d frontend

yukarıdaki komut frontend dalını siler. Bu komutu kullanırken dikkatli olmalısınız. Yanlışlıkla çalışmalarınızı çöpe atmak istemezsiniz.

Buraya kadar sürüm kontrol sistemi Git’in temel kullanım ve komutlarından bahsettim. Tahmin edebileceğiniz gibi Git son derece gelişmiş komut ve özelliklere sahip bir versiyon kontrol sistemidir. Burada bahsettiğim ve bahsetmediğim tüm komut ve özellikleri için resmi dökümanlara https://git-scm.com/docs/ adresinden ulaşabilirsiniz.

Remote (Uzak) Repo

Buraya kadar anlatılanlar local (yerel) repo içindi. Yani yukarıdaki anlatımla yaptığınız tüm sürüm oluşturma (commit) işlemleri çalıştığınız bilgisayarda saklanmaktaydı.

Olurda her hangi bir sebeple çalıştığınız bilgisayar arızalanırsa tüm çalışmalarınız yok olabilirdi. Ayrıca repo sadece sizin bilgisayarınızda olduğu için takım çalışması yapmak eziyete dönüşebilir hatta imkansız olurdu. Bu yüzden git kullanımında işlemlerin çoğu yerel bilgisayarımızda yapılıyor olsa da, reponun bir kopyasını uzak sunucu üzerinde tutmak her bakımdan avantajlıdır.

Remote Repo için internet tabanlı github.com, gitlab.com ya da bitbucket.org gibi popüler servisleri kullanabilirsiniz. Elbette yeterli teknik bilgi ve deneyime sahipseniz kendi remote reponuzu da yazmanız mümkün. Burada remote repo kullanımını anlatmak için github.com platformu üzerinden anlatıma devam edeceğim. (Verdiğim komutlar diğer git platformlarında da aynıdır.)

Öncelikle github.com adresine gidip hesabınızı oluşturun. Bu işlem sıradan bir web sitesine kayıt olmaktan farksız olduğu için bu noktalara değinmeyeceğim.

Github ile Remote Repo Oluşturma

github.com web sitesine giriş yaptıktan sonra sağ üst köşede profil resminizin yanındaki + ikonuna tıklayarak açılan menüden New Repository‘e tıklayın.

Ardından uzak repoyu oluşturmanız için aşağıdaki resimde gördüğünüz basit bir form açılacaktır.

Owner uzak (remote) reponun sahibini belirtir.
Repository name, formdaki tek zorunlu alandır ve oluşturacağınız remote reponun adının ne olacağını belirtmelisiniz. (Not : Bir owner için aynı isimde iki aynı isme sahip repo oluşturamazsınız.)
Description repo için birkaç kelimelik kısa bir açıklama yazabileceğiniz alandır.
Public ve ya Private, isimlerinden anlayabileceğiniz gibi oluşturulan reponun herkese açık mı yoksa gizli mi olacağıdır.
Add a README file, seçeneği seçilirse reponun çalışma dizinine README.md dosyası oluşturur. Bu dosyayı daha sonra kendinizde oluşturabileceğiniz için genellikle oluşturulması tercih edilmez.
Add .gitignore, seçeneği seçilirse reponun çalışma dizinine .gitignore dosyasını oluşturur. Bu da yine daha sonradan oluşturulabildiği için tercih konusudur.
Choose a license, seçeneği seçilirse reponun hangi lisans altında lisanslandığını belirtmenizi isteyecek bir form alanı açılır. Buradan kullanacağınız Lisans türünü seçerek LICENSE dosyasının oluşturulmasını sağlar. Yine bu da daha sonradan oluşturulabileceği için tercih konusudur.

Uzak repoyu oluşturmak için formu doldurup Create repository butonuna basabilirsiniz.

Add a README file, Add .gitignore ve Choose a license seçenekleri seçilmediyse boş bir uzak repo oluşmuş olur ve aşağıdakine benzer bir sayfa açılır. Seçeneklerden biri seçildiyse ilgili dosya repo içerisine eklendiği için oluşan repo boş değildir ve haliyle bildiğimiz github repo sayfası açılır.

Yukarıdaki resimde komutların olduğu iki farklı bölüm görüyorsunuz ilk bölümdeki komutlar yerelde yeni bir git oluşturup remote repoya göndermek içindir. İkinci bölümdeki komutlar ise hali hazırda yerel repoda çalıştığınız bir git projeniz varsa bunu remote repoya aktarmanız için gerekli olan komutlardır. Bu komutları sırasıyla inceleyecek olursak;

Yeni Local Repo Oluşturup Remote Repo’ya Push Etmek

echo "# YeniUzakRepo" >> README.md : Çalışma dizinim içerisinde README.md dosyasını oluşturur ve içerisine #YeniUzakRepo yazar.

git init : Local repoyu ilgili çalışma dizinim için oluşturur.

git add README.md : Çalışma dizinimdeki README.md dosyasının git tarafından izlenmesi için ekler.

git commit -m "first commit" : Açıklaması first commit olan ilk sürümü oluşturur.

git branch -M main : Mevcut dal adı main olarak değiştirilir.

git remote add origin https://github.com/muhametsafak/YeniUzakRepo.git : Bu satırda yerel repoya bir uzak repo ataması yapıyoruz. Burada .git ile biten url sizin kullanıcı adınız ve reponuza verdiğiniz isme göre farklı olacaktır.

git push -u origin main : Yerel repoyu remote repoya gönderir.

Mevcut Local Repoyu Remote Repoya Push Etmek

Bu bölümde yer alan komutların bir önceki bölümdeki son üç komut ile birebir aynı olduğunu görebilirsiniz. Remote repo adresini tanımlar, mevcut dal adı main olarak değiştirilir ve yerel repo uzak repoya gönderilir.

Yerel Repoyu Uzak Repoya Gönderme (push) ve Alma (pull)

Yerel repodaki çalışmaları uzak repoya gönderme işlemi için push komutu kullanılır.

git push

Eğer remote repoda yerel repodakinden farklı bir sürüm oluşturulmuş ise push komutunu vermeye çalıştığınızda hata alırsınız. Bu yüzden local repodaki değişiklikleri remote repoya push edebilmek için öncelikle remote repodaki değişiklikleri local repoya almanız gerekir.

Bu durumda öncelikle fetch komutu ile remote repodaki değişiklikler alınmalı ve ardından merge komutu ile local repo ile birleştirilmelidir.

git fetch
git merge

veya iki farklı komut yerine pull komutu kullanılabilir.

git pull

Yani remote repo ile çalışılacağı zaman öncelikle remote repodaki değişiklikler alınmalı (pull) ve sonrasında local repodaki değişiklikler remote repoya gönderilmelidir (push).

Çakışma Durumu

Bazen remote ve local repoda aynı dosya üzerinde değişiklik yapılmış olabilir. Bu durumda pull komutu yürütülürken CONFLECT (Content) diye başlayan bir satır görebilirsiniz. Birleştirme sırasında bir çakışma olduğunu bildiren bir mesajla devam eder ve hangi dosyada bu çakışmanın yaşandığını bildirir.

Örneğin index.html dosyasında title satırının çakıştığını düşünelim. index.html dosyasını açtığınızda aşağıdakine benzer bir yapı ile karşılaşırsınız.

<<<<<<< HEAD
	<title>Local Repo'daki Title</title>
=======
	<title>Remote Repo'daki Title</title>
>>>>>>> 916727fe92b1065fd9e8ba99bb49db90b5a6047d

Yukarıdaki kodlarda <<<<<<< HEAD ile ======= arasında kalan kısım local repodaki kodlar, ======= ile >>>>>>> arasında kalan kısım remote repodaki kodlardır.

Yine aynı örnekten devam edecek olursak, local repodaki değişikliği geçerli kabul edeceksek yukarıdaki kod bloğunu aşağıdaki şekilde değiştirip dosyayı kaydedelim.

<title>Local Repo'daki Title</title>

Sonrasında dosyayı add komutu ile ekleyip, commit ile sürüm oluşturulup, push komutu ile remote repoya gönderebilirsiniz.

git add index.html
git commit -m "Local Title Geçerli Kabul Edildi"
git push

Uzaktan Yerelle Repo Aktarma (clone)

Remote repo üzerindeki bir git projesini yerel bilgisayarımıza aktarmak için clone komutu kullanılır.

git clone https://github.com/muhametsafak/YeniUzakRepo.git

yukarıdaki komut https://github.com/muhametsafak/YeniUzakRepo.git remote repo adresindeki repo için bulunduğum dizinde YeniUzakRepo adında bir dizin oluşturarak içine klonlar.

Eğer terminalin mevcut bulunduğu dizin içerisinde değil de farklı bir dizine klonlama işlemi yapmak isterseniz tam dizin yolunu belirtebilirsiniz.

git clone https://github.com/muhametsafak/YeniUzakRepo.git /home/yenirepo/

Yukarıdaki komut https://github.com/muhametsafak/YeniUzakRepo.git uzak repo adresindeki repoyu /home/yenirepo/ dizinine klonlayacaktır.


Github.com üzerinde Branch ile Çalışma

Local repodaki bir branchi push etmek için;

git push origin localbranchname

localbranchname isimli dalı remote repoya push eder.

Şimdi proje yöneticisi olarak github üzerinden gönderilen bu dalı, projenin ana dalına nasıl dahil edeceğimize bakalım.

Github üzerinde proje sayfasında gördüğünüz gibi sarı zeminde cssfeature isimli dalın push edildiğine dair bir bildirim gösteriliyor. Compare & pull request butonuna basarak ilgili push işlemini kontrol edelim.

proje yöneticisi olarak yukarıdaki sayfa bize gönderilen dal ile ilgili ayrıntıları gösteriyor. Sayfanın altında kim tarafından hangi dosya da ne değişiklik yapıldığını da görebilirsiniz.

Yönetici olarak kendi yorumunuzu da dilerseniz bu bölümden girerek Create pull request butonuna basarak ana dala çekebilirsiniz.

Yukarıdaki sayfadan Merge pull request butonuna basarak yapılan değişiklikleri birleştirme işlemine başlayabilirsiniz. Bu alan aşağıdakine benzer şekilde değişecektir.

Burada da varsa yönetici olarak yorumunuzu yazabilirsiniz. Confirm merge butonuna bastığınızda birleştirme işlemi başlayacaktır.

Birleştirme işlemi tamamlandıktan sonra bu branch’in yayında kalmasına gerek yoksa branch’i remote repodan silebilmenizi sağlayacak bir buton göreceksiniz.

Delete branch butonuna tıklayarak branchi silebilirsiniz.


Github.com’da Ekip İle Çalışma

Elbette github.com üzerinde ki projenize her isteyen düzenleme gönderemeyecektir. Bir kullanıcının projeye düzenleme gönderebilmesi için Collaborators (işbirlikçi) olarak eklenmiş olması gerekmektedir.

Github üzerindeki projenize işbirlikçi eklemek için github proje sayfasından Settings > Manage access sayfasından Add people butonuna basıyoruz.

Açılan küçük popup içerisinde ekip üyelerinin github kullanıcı isimleri ile arama yaparak ekleyebilirsiniz.


Github’da Bir Projeye Collaborator Olmak

Bir projeye katkı vermek isteyebilirsiniz. Bu işlem için katkı vereceğiniz github projesinin sayfasına gidin.

Fork butonuna basın! Bu buton projeyi sizin hesabınıza dallandırır. Aşağıdaki resimde görebileceğiniz gibi bu proje için kendi github hesabıma bir repo oluşturmuş oldum.

Projeyi local repoma klonladım ve index.html dosyasında bir değişiklik yaparak kendi hesabımda ki remote repoya push ettim.

Sonrasında projenin kendi hesabımdaki sayfasına geliyorum ve Contribute tıklıyorum açılan bölümden Open pull request butonuna basıyorum

Şimdi yaptığım değişikliği gerçek projeye eklemeleri için bir pull isteği gönderebileceğim sayfa açıldı.

Bu sayfadan yaptığım değişikliği vs kontrol edip, Create pull request butonuna tıkladığımda yapılan değişikliği yazabileceğim bir yorum bölümü açılacaktır.

Burada da yorumumu yazıp Create pull request butonuna tıkladığımda pull isteğim gerçek projenin yöneticisinin onayına sunulacaktır.

Yazar Muhammet ŞAFAK

1992 İstanbul doğumluyum. 2008 yılından beri profesyonel olarak PHP geliştiriyorum. Her ne kadar ağırlıklı olarak PHP üzerinde çalışsam da C, C++, Python, Java programlama dillerini de kullanıyorum.

Bir Cevap Yazın