Kod versiyonlamada eskiden sourcesafe kullanırdık. Şimdilerde ise aynı işi visualstudio üzerinden source control ile yapıyoruz. Ancak bir süredir bitbucket ve github ile ilgilide bişiler karıştırıyorum. Sonradan hatırlamak için aldığım notları burda paylaşmak istedim.

Öncelikle bitbucket üzerinden bir repository açmalısınız. Aslında bu bir anlamda bir proje demek.

Bu repository oluştuktan sonra 1, 2 ve 3’ncü adımları takip ederek oluşturduğunuz proje yada repository içine girebiliriz.

burdan sonra işler biraz daha anlaşılır olmaya başlıyor. Şimdi geldiğimiz noktayı özetlersek, bitbucket üzerinde bir proje oluşturduk. şimdi ilk yapmamız gereken diskte açacağımız bir dizin ile bu projenin ilişkilendirilmesini sağlamak olması lazım. bunun için windows ==> run ==> cmd ile command prompt’a çıkalım.

C:\Users\Ibrahim.COBANI>cd OneDrive
C:\Users\Ibrahim.COBANI\OneDrive>md Sources
C:\Users\Ibrahim.COBANI\OneDrive>cd sources
C:\Users\Ibrahim.COBANI\OneDrive\Sources>md api.workhour.com
C:\Users\Ibrahim.COBANI\OneDrive\Sources>cd api.workhour.com
C:\Users\Ibrahim.COBANI\OneDrive\Sources\api.workhour.com>

şeklinde bir dizin oluşturduk.

ilk olarak repository dizini için bir boş bir git konfigurasyonu oluşturalım

git init

dizin ile repositorymizi bağlayalım.

git remote add origin https://ibrahimcobani@bitbucket.org/ibrahimcobani/api.aworkhour.com.git

 

git sisteminde branch diye bir yapı var. bu yapıya göre farklı yazılımcılar aynı projede farklı versiyonlarla kendi sistemlerinde kod yazmaya devam edebiliyorliyorlar. Sonrasında merge işlemini kullanışlı toollar ile yapabiliyorsunuz. Eğer ilk defa repository oluşturuldu ise aşağıdaki komutla bir master branch üretilir.

**bu değişikliklerin hiç biri push yapmadan sisteme aktarılmaz henüz hala tasarım aşamasındayız.

git pull origin master

genelde projeler içine bir readme.md koymak adettendir. bunu niçin bir text editör ile ( Ben http://markdownpad.com/ editörünü kullanıyorum. tavsiye ederim)

Readme.md

# api.aworkhour.com #

 

içeriğinde bir readme.md dosyası oluşturalım. Dizinde şimdi bu dosyanın olduğunu varsayıyoruz. Eğer hiç göndermediğiniz dosyalarınız varsa öncelikle bunun git için eklemelisiniz. Aşağıdaki fonksiyon dosyalar, dizinler, dizinler içine eklediğiniz dosyalar vs. hepsini bulacak ve sisteme gönderilmek üzere işaretleyecek. Eğer eklenmesi gereken bir dosya yoksa aşağıdaki komutu çalıştırmanıza hiç gerek yok.

git add --all

sonrasında dosyaları gönderilmek üzere commit etmemiz gerekiyor. Bu commit işleminde tabiki aşağıdaki şekilde de bir açıklama girmek gerekir.

git commit -am "Projenin readme dosyasını oluşturarak açılışı yapıyoruz."

aşağıdaki fonksiyon ile de master branch’ına hangi dosyalar varsa bunların hepsi gönderilir.

 git push origin master

 

birde diyelim ki önceden bitbucket yada git üzerindeki bir projeyi kendinize almak için

 

git clone https://ibrahimcobani@bitbucket.org/ibrahimcobani/api.aworkhour.com.git

 

fonksiyonunu kullanırız.

Git push edilen her bir versiyonun tamamının snapshot’unu alır. böylelikle herhangi bir commit ile gelen versiyonu istediğinizde sadece o versiyonda değişenobjeleri değil tüm objelere ulaşabilirsiniz. aşağıdaki şekilde cat-file parametresi ile gönderilen head en son commit edilen versiyon hakkında bizi bilgilendirir. -p paremetresi prety anlamında işte biraz güzel göster gibisi bişi.çıkan sonuç’da aşağıdaki şekilde olacaktır.

git cat-file -p head

tree 89c1c54cf939c30304250d5fb18a243b74e0d161
parent a064b8a8f2318fcda8c2690ee856632bed553541
author İbrahim COBANİ <ibrahim@imaconsult.com> 1441098487 +0300
committer İbrahim COBANİ <ibrahim@imaconsult.com> 1441098487 +0300

bidi eklendi

yine aynı fonksiyonu head yerine

89c1c54cf939c30304250d5fb18a243b74e0d161

parametresi ile gönderidiğiniz zaman proje içindeki dosyaları aşağıdaki şekilde görebilirsiniz.

git cat-file -p 89c1c54cf939c30304250d5fb18a243b74e0d161
100644 blob 4c3e6fc7eefc970f126dce08f5c52cb11d33dd88 Readme.md
100644 blob b6fc4c620b67d95f953a5c1c1230aaab5db5a1b0 bidi.txt

yine aynı şekilde aynı fonksiyonla dosyanın ilgili versiyonunun idsi ile çağırırsanız bu sefer dosyanın içeriğini görebilirsiniz.

git cat-file -p 4c3e6fc7eefc970f126dce08f5c52cb11d33dd88
# api.aworkhour.com #
anworkhour projesi içindeki apiler bu bölümde yazılacaktır. Api listesini altta bulabilirsiniz.

şimdi örneğin yine command prompt ekranında iken aşağıdaki şekilde bir dosya ekleyelim ve içine denemek için bişiler yazıp kaydedelim. Hemde mevcut Readme.md dosyasına da bişeyler ekleyerek dosyayı değiştirelim. Gün sonunda sanki çalışmışız bir sürü dosya eklemişiz bazı dosyaları değiştirmişiz vs.

notepad text.txt

aşağıdaki komutla gün içinde hangi dosyaları değiştirmişsiniz yada hangi dosyaları yeni eklemişsiniz. göndermeniz gereken neler var gibi kontrolleri yapabilirsiniz. Bence çok kullanışlı.

git status

On branch master
Changes not staged for commit:
 (use "git add <file>..." to update what will be committed)
 (use "git checkout -- <file>..." to discard changes in working directory)
modified: Readme.md
Untracked files:
 (use "git add <file>..." to include in what will be committed)
api.aworkhour.com/
 test.txt
no changes added to commit (use "git add" and/or "git commit -a")

tabiki eklemeniz gereken dosya veya tüm dosyaları aşağıdaki şekilde ekleyebilirsiniz.

git add test.txt
veya
git add -all

birde mesela en son yaptığınız 3 commit işlemini aşağıdaki komutla görebilirsiniz.

git log -3

yada şöyle daha havalı görebilirsiniz 🙂

 

git log --decorate --graph --oneline --all

 

bir de

gitk

diye bişi var bu da çok güzel kullanışlı bir tool sağlıyor.