begumonder / gitprojem

1den10akadaryaz

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

gitprojem

##SÜRÜM KONTROL SİSTEMLERİ

Bir proje hazırlarken projemizin kodlarını yedeklememiz gerekiyo ancak yedekler çoğaldıkça karışıklığa neden oluyor ve anlamamız zorlaşıyor.Bu sorunu giderebilmek için projemizin yeddeklerini bizim yerimize alan programlar bulunmakta.Bu programlara sürüm kontrol sistemi denir.

resim7

##DAĞITIK VERSİYON KONTROL SİSTEMLERİ? Dağıtık versiyon kontrol sistemlerinde birden fazla yerel depo ve birden fazla kullanıcı bulunur.Bir de uzak depo vardır. Bir projede birden fazla kişinin çalıştığını düşünelim.Dağıtık versiyon kontrol sistemlerinde projenin kopyası her kullanıcıda bulunur.Merkezi bir servera tüm kulanıcılar yaptığı değişiklikleri gönderebilir ve daha sonra kullanıcıların yaptığı tüm değişiklikler birleştirilebilir.Bunun dışında projeyi etkililcek bir çalışma yaptığınızı düşünüyorsanız ana dal olan master dalı bozmadan yan dallarda çalışma yapabilirsiniz.

resim8

##GİT NEDİR?

Git dağıtık versiyon kontrol sistemlerinin en yaygın olanıdır.Gitte dosyalarınız tek bir sunucu üzerinde değil birden çok sunucu üzerinde tutulur.

resim

##GİTİN İŞLEYİŞ BİÇİMİ?

Dosyalarınız üzerinde değişiklik yapılır. Dosyalarınız hazırlık alanına eklenir. Hazırılık alanındaki son halleri alınıp Git klasörüne kalıcı olarak depolanır.

resim2

##İŞ AKIŞI Yerel deponuz git tarafından yönetilen üç "ağaçtan" oluşur.

  1. Gerçek dosyaları tutan Çalışma Dizini.
  2. Aşama Stage ve
  3. Yaptığınız son commit'i gösteren HEAD.

resim3

##GİTİN BAZI KOMUTLARI Add:projemizdeki değişiklikleri gite eklememize yarar.

git add gitprojem.sln

Commit:doyalarımız üzerinde yaptığımız değişiklikleri bildirdiğimiz komuttur.

git commit -m "ilk değişiklik"

Remote:dosyalarımızı sunucuya göndermemizi sağlar.push ile remote edilir.

git remote add origin https://github.com/gitprojem/gitprojem

git push:yaptığınız değişiklikleri uzak sunucuya göndermenizi sağlar.Bir projeyi push etmek istediğinizde size kulanıcı adı ve şifre sorar eğer bilgileri doğru girerseniz ve projeye yazma izniniz var ise deişiklikleriniz push edilir.

git push

tüm değişiklikleri uzak sunucuya göndermenizi sağlar.

git push origin master

master branchdeki değişiklikleri uzak sunucuya göndermenizi sağlar.

git pull:uzak sunucuda değişikliğe uğramış ya da yeni eklenmis dosya varsa bunları indirir ve yereldeki proje ile birleştirir.

git pull https://github.com/begumonder/gitprojem

git clone:Yerel ya da uzak sunucuda bulunan projenizi bulunduğunuz dizine kopyalamaya yarar.

git clone https://github.com/gitprojem/gitprojem

##BRANCH(DALLANMA) Yeni bir proje oluşturduğunuzda her zaman aktif bir branch üzerinde çalışırsınız.Aktif branchi bozmadan yeni bir çalışma yapmak istediğinizde kullanıcağınız yöntem ise aktif branch dışında yeni bir alt branch eklemek.Örneğin bir proje yaptığınızı varsayalım projenizde master branchi etkileyebileceğini düşündüğünüz bir çalışma yapmak istiyor olun.Bu durumda master branchin etkilenmemesi için yeni bir alt branch ekleyip onun üzerinde çalışma yapabilirsiniz.

projem adında yeni bir dal açıp oraya geçmek için

git checkout -b projem

tekrar master branche dönmek için

git checkout master

oluşturduğunuz dalı silmek için

git branch -d projem

başkaları tarafından kullanılabilsin diye bir dalı uzak depoya göndermek için

git push origin <projem>

resim4

##MERGE (BİRLEŞTİRME) Projenizde yeni bir branch oluşturdunuz ve bu branch üzerinde çalışma yaptınız.Bu branchdeki çalışmalarınızı master branche veya aktif olan branche eklemek istediğinizde kullanılan komut merge komutudur.Her zaman birleştirme işlemi gerçekleşmeyebilir bazı durumlarda çakışmalar olabilir.Git tarafından gösterilen dosyaları elle düzenleyerek çakışmaları birleştirmek size düşer.

git merge projem

değişikliklerden sonra dosyaları eklemek için

git add <gitprojem>

resim5

##GİTHUB NEDİR? Git ile github aynı şey değildir.Git bir versiyon kontrol sistemidir.(Dağıtık versiyon kontrol sistemi de denir) Github ise versiyon kontrol sistemleri için uzak bir depodur(repository).

##PULL REQUEST Başka birisinin yaptığı projeyi alıp üzerinde çalışmalar yapıp proje sahibinden yaptığımız çalışmaları projeye çekmesini isteğimiz işlemdir.Pull requst git ya da github ile gelen bir yaklaşım değildir.Pull request birden çok servisin kullanılmasıyla yapılmaktadır.(Git ve Github..)Örneğin başkasının projesinde bir değişiklik yapmak istiyor olalım.Bu durumda projeyi fork edip kendi bilgisayarımıza klonlarız.Klonlama işleminden sonra push işlemini yaparız.Projenin üzerinde değişikliklerimizi yapıp proje saahibine pull request isteginde bulunuruz eğer proje sahibi kabul ederse değişikliklerimizi projesine eklemiş olur.Peki ya biz klonlama işleminden sonra proje sahibi projede bir değişiklik yapsaydı ne yapmamız gerekirdi?İşte bu durumda bizde ana projedeki değişikliği almak için fetch ve upstream komutlarını kullanırız. uzak dedpodaki değişiklikleri çekerek kendi makinenize almamıza yarayan komuttur.upstream ise proje bağlantısına yeni isim vererek eklememize yarar.

önce projeyi forklayıp klonluyoruz ve projede değişiklikler yapıyoruz.

git clone https://github.com/Y/ABC.git

cd ABC

1. değişiklik...

git add README.adoc;

git commit -m "1. Değişiklik"

2. değişiklik...

git add .travis.yml

git commit -m "2. Değişiklik"

git push origin

Projemizde değişiklikler yaptığımız esnada proje sahibi projede değişiklik yaparsa bizimde o değişiklikleri kendi makinemize almamız gerekir.Bunun için önce remote -v kodu ile upstream olup olmadığını kontrol ediyoruz.

git remote -v

origin https://github.com/Y/ABC.git (fetch)

origin https://github.com/Y/ABC.gitt (push)

upstream https://github.com/X/ABC.git (fetch)

upstream https://github.com/X/ABC.git (push)

Daha sonra master dalında olup olmadığımızı kontrol edip makinemizdeki master dalı ile upstreamdeki master dalını birleştiriyoruz.Bu şekide hem uzak depoda hem de lokaldeki proje bilgilerinin son halini almış oluyoruz.

git checkout master # master dalına geçiliyor

git fetch upstream # uzaktaki projenin tüm verileri çekiliyor

git merge upstream/master # uzak depodaki master dalındaki değişiklikler birleştiriliyor.

Değişiklikleri aldıktan sonra proje sahibine pull request isteğinde bulunuyoruz.Proje sahibi eğer kabul ederse projede yaptığımız değişiklikleri merge edip değiştirmiş oluyor.

resim6

##GİT-DEĞİŞİKLİKLERİ GERİ ALMA Projeniz üzerinde çalışma yaparken eğer kaydı çok erken yapmışsanız, bazı dosyaları eklemeyi unutmuşsanız ya da kayıt mesajında hata yapmışsanız bu durumlarda kaydı değiştirmek zorunda kalabilirsiniz.

son kaydı geri alır

git checkout -- gitprojem.sln

Eğer tüm yerel değişiklik ve teslimlerinizi iptal etmek istiyorsanız

git fetch origin

git reset --hard origin/master

##GİT GEÇMİŞE GİTME Yaptığınız çalışmalarada geriye dönmek istediğinizde kullanacağınız komutlardır.

git show:Yaptığınız değişiklikleri gösterir.

git show

gi show komutunun başka kullanım şekilleri de vardır.

git show 217c9eb0077

kullanacağınız ilk bir kaç kararkter yeterlidir.Bu komut ile görmek istediğiniz değişikliğe gidebilirsiniz.

git show HEAD

bu komut ile aktif dalda yaptığınz değişiklikleri görebilirsiniz.

##SÜRÜMLEMEK Yazılım sürümlerini oluşturmak için sürüm adı oluştururuz. 1.0.0 adıyla sürüm numarası oluşturmak için

git tag 1.0.0 1b2e1d63ff

buradaki 1b2e1d63ff yayımlanacak yazılım sürümünüzün işlem numarasının ilk 10 karakteridir. İşlem kimlik numaralarını görmek için

git log

##PROJEDE KULLANDIĞIM PROGRAM HAKKINDA Bu programın amacı 1'den 10'a kadar olan sayıları ekrana yazdırmak.Program için c# kullandım.Bu programı yazmamın amacı git işlemlerinden, git komutlarından öğrendiklerimi aktarmak.

Hazırlayan:Begüm ÖNDER

About

1den10akadaryaz


Languages

Language:C# 100.0%