Skip to content

Latest commit

 

History

History
438 lines (341 loc) · 10.7 KB

git-cheat-sheet-tr.md

File metadata and controls

438 lines (341 loc) · 10.7 KB

Git Cheat Sheet Turkish Awesome

###Index


##Oluşturma

#####Var olan bir repositoryi(depoyu) klonlama:

$ git clone ssh://[email protected]/repo.git

#####Yeni bir yerel repository(depo) oluşturma:

$ git init

##Yerel Değişiklikler

#####Çalışılan dizindeki dosyaların değişimi:

$ git status

#####İzlenen dosyalardaki değişiklikler:

$ git diff

#####Tüm güncel değişiklikleri sonraki commite ekleme:

$ git add

#####Sonraki commite <dosyasındaki> bazı değişikleri ekleme:

$ git add -p <file>

#####Tüm izlenen dosyalardaki yerel değişiklikleri Commitleme:

$ git commit -a

#####Önceden hazırlanan değişiklikleri commitleme:

$ git commit

#####Mesaj ile commitleme:

$ git commit -m 'message here'

#####Önceki belli bir tarihe commitleme:

git commit --date="`date --date='n day ago'`" -am "Commit Message"

#####Son commiti değiştirme:
######Yayınlanan commite değişiklik yapmayın!

$ git commit --amend

#####Mevcut branchteki kaydedilmemiş commitleri diğer bazı branchlere taşıma:

git stash
git checkout branch2
git stash pop

##Arama

#####Bir metni dizindeki bütün dosyalarda aramak:

$ git grep "Merhaba"

#####Bir metni herhangi bir sürüm içinde aramak:

$ git grep "Merhaba" v2.5

##Commit Geçmişi

#####Tüm commitleri en yenisinden başlayarak listeler:

$ git log

#####Tüm commitleri görüntüler(Sadece commit hash ve commit mesajı görüntülenir.):

$ git log --oneline

#####Belli kullanıcıya ait commitleri görüntüler:

$ git log --author="username"

#####Belirli bir dosya üzerinde zaman içinde meydana gelen değişiklikleri göstermektedir:

$ git log -p <file>

#####<Dosyayı> kim , ne ve ne zaman değiştirdiğini gösterir.:

$ git blame <file>

##Branches & Tags

#####Tüm var olan branchleri listeler:

$ git branch

#####Ana branchi değiştirir:

$ git checkout <branch>

#####Mevcut ana branchte yeni bir branch oluşturur:

$ git branch <new-branch>

#####Remote branchte yeni bir izlenen branch oluşturur:

$ git branch --track <new-branch> <remote-branch>

#####Yerel branchi siler:

$ git branch -d <branch>

#####Güncel commiti etiket ile işaretler:

$ git tag <tag-name>

##Güncelleştirme & Yayınlama

#####Yapılandırılmış tüm güncel remoteları listeler:

$ git remote -v

#####Belirli bir <remote> hakkında bilgileri gösterir.:

$ git remote show <remote>

#####Yeni remote repository oluşturur, <remote> diye isimlendirir:

$ git remote add <remote> <url>

#####<Remote> da bulunan tüm değişiklikleri indirir, ama ana brachle birleştirmez:

$ git fetch <remote>

#####Değişiklikleri indirir ve doğrudan ana brache merge/integrate eder:

$ git remote pull <remote> <url>

#####Tüm ana Branchteki değişiklikleri yerel repositorye ekler:

$ git pull origin master

#####Remote da bulunan repositorye(depoya), yerel değişiklikleri yayınlar:

$ git push remote <remote> <branch>

#####Remote da bulunan bir branchi siler:

$ git push <remote> :<branch> (since Git v1.5.0)

or

$ git push <remote> --delete <branch> (since Git v1.7.0)

#####Etiketleri yayınlar:

$ git push --tags

##Merge & Rebase

#####Merge into your current HEAD:

$ git merge <branch>

#####Rebase your current HEAD onto <branch>:
######Yayınlanan committen sonra rebase yapmayın!

$ git rebase <branch>

#####Rebase iptal etmek:

$ git rebase --abort

#####Çakışmaları çözümledikten sonra rebase devam etmek:

$ git rebase --continue

#####Çakışmaları çözmek için yapılandırılmış birleştirme aracını kullanmak:

$ git mergetool

#####Use your editor to manully solve conflicts and (after resolving) mark file as resolved:

$ git add <resolved-file>
$ git rm <resolved-file>

##Geri Alma

#####Çalışılan dosyadaki tüm yerel değişiklikleri kaldırır:

$ git reset --hard HEAD

#####Evreleme alanı dışındaki tüm dosyaları alır(örnek: son git add'i geri alır):

$ git reset HEAD

#####Belli bir dosyadaki yerel değişiklikleri kaldırır:

$ git checkout HEAD <file>

#####Silinen dosyayı geri döndürme dosyanın commit loglarının tutuluyor olması ile mümkündür:

$ git revert <commit>

#####Reset your HEAD pointer to a previous commit and discard all changes since then:

$ git reset --hard <commit>

#####Reset your HEAD pointer to a previous commit and preserve all changes as unstaged changes:

$ git reset <commit>

#####Reset your HEAD pointer to a previous commit and preserve uncommitted local changes:

$ git reset --keep <commit>

##Git-Flow

###Index


###Ayarlar ######Git flow'u kullanabilmek için öncelikli olarak git kurulumunun yapılması gerekmektedir. Git flow OSX, Linux ve Windows üzerinde çalıştırılabilir.

#####OSX Homebrew:

$ brew install git-flow

#####OSX Macports:

$ port install git-flow

#####Linux:

$ apt-get install git-flow

#####Windows (Cygwin): ######Git flow kurulumu için wget ve util-linux gerekmektedir.

$ wget -q -O - --no-check-certificate https://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | bash

###Başlarken ######Git flow, kullanmak istediğiniz projede ayarlarınızı özelleştirmek amacıyla başlatılır (initialize).

#####Başlangıç (Initialize): ######Bu noktada kafanızda dallarınızı (branches) isimlendirme konusuna ilişkin birçok soru işareti oluşacaktır. Bu bağlamda varsayılan (default) değerleri kullanmanız önerilir. ######git flow'u kullanmak istediğiniz reponuzdayken:

git flow init

###Özellikler (Features) ######Git flow ile yayınlamak üzere olduğunuz projenize ekleyeceğiniz özellikler için yeni dallarda (feature) kodlama yaparsınız. Genel olarak sadece geliştirici repolarında bulunurlar.

#####Yeni bir özellik eklemesi başlatmak (feature start): ######Yeni özelliklerin eklenmesi öncelikle develop dalından (branch) başlar.

git flow feature start MYFEATURE
Bu komut bize develop dalını (branch) temel alan bir özellik dalı (feature) oluşturur. Ve bulunduğumuz dalı develop/MYFEATURE olarak değiştirir.

#####Bir özellik eklemesi bitirilirken (feature finish): ######Bir özelliğin eklenme işlemi bitirilirken şunları yapılır: ######1)Kendi çalıştığımız özellik dalı (burada MYFEATURE) develop ana dalı ile birleştirilir. ######2)Bu birleşmeden sonra kendi özellik dalımız (MYFEATURE) silinir. ######3)Bulunduğumuz dal tekrar develop olarak değiştirilir.

git flow feature finish MYFEATURE

#####Bir özelliği yayınlamak (Publish a feature): ######Bir ekip içerisinde geliştirme mi yapıyorsunuz? O zaman geliştirdiğiniz özelliği bir uzak sunucuya gönderin, böylelikle geliştirdiğiniz özellik diğer kullanıcılar tarafından kullanılabilir.

git flow feature publish MYFEATURE

#####Yayınlanmış bir özelliği almak (Getting a published feature): ######Uzak sunucu üzerinde yayınlanmış bir özelliği kendi yerel (local) çalışma ortamınıza aktarırken:

git flow feature pull origin MYFEATURE

###Bir Yayın Çıkarırken (Release) ######Yeni bir ürünün yayınlanmasına yardımcı olur. Küçük hata giderimleri ve meta-data hazırlığı için kullanılabilir.

#####Bir sürüm yayınlamak (Start a release): ######Bu komut ile develop dalını temel kabul eden bir release dalı (branch) yaratılır. ######Opsiyonel olarak yayınınızın [BASE] noktasından başlamasını sağlayabilirsiniz. Bu commit develop dalında (branch) iken yapılmalıdır.

git flow release start RELEASE [BASE]

######Yayınlama dalınız (release branch) oluştuktan sonra bu yöntem ile diğer yazılımcılar tarafından yapılan release commitlerinin de kabul edilmesini sağlayabilirsiniz. Bunu özellik yayınlama (feature publishing) ile kolaylıkla yapabilirsiniz.

git flow release publish RELEASE

######(Uzak sunucu üzerindeki yayınları git flow release track RELEASE ile izleyebilirsiniz. )

#####Bir sürüm yayınını tamamlamak(Finish up a release): ######Bir sürüm yayınını tamamlarken git dallanmasının (branching) en büyük adımını atarız. Yayınlanma tamamlanırken: ######1)Yayınlama yaptığımız dal olan release dalı (branch) master ana dalı ile birleştirilir. ######2)Etiketler (tags) isimleri ile birlikte yayınlanır. ######3)Arkaplandaki birleştirmeler (back-merges) develop dalında yayınlanır. ######4)Yayınlama için açmış olduğumuz dal (branch) silinir.

git flow release finish RELEASE

######Ancak etiketlerinizi de eklemeyi unutmayın! git push --tags bu sorununuzu da halledecektir.


###Hata giderimleri (Hotfixes) ######Yayına çıkarılmış bir versiyonda istenmeyen durumlar ortaya çıktığında ani hata giderimi için kullanılır. Hotfixler, master ana dalı (branch)ındaki versiyon numarasını belirten etiketten dallanır (branching).

#####Bir hata giderimini başlatmak(git flow hotfix start): ######iğer git flow komutlarında olduğu gibi bir hotfix başlatılırken:

$ git flow hotfix start VERSION [BASENAME]

######Versiyon argümanları yeni hotfix yayınının adını alır. Opsiyonel olarak başlangıç noktası için bir isim özelleştirmesi yapabilirsiniz (basename).

#####Hata giderimi bitirme (Finish a hotfix): ######Bir hata giderimi tamamlanırken, develop ve master dalları ile birleştirilir. Ayrıca master dalına (branch) hotfix versiyonunun etiketi eklenir.

git flow hotfix finish VERSION

###Komutlar (Commands)

Git


###Git flow şeması

Git