git - kullan uğraştırma

git anlaşılır temiz kullanım rehberi

by Fatih Mert Doğancan, repository

CSS3 Flex, Material UI Renkleri ve DevIcons kullanılmıştır

git - kurulum

git - depo oluşturmak

Yeni depo oluşturmak için klasör içerisinde;

git init

komutunu çalıştırın

git - depo kopyalamak

Deponuzun çalışan kopyasını oluşturmak için;

git clone /yol/depo

github, bitbucket gibi uzak sunucular için;

git clone [email protected]:/yol/depo

git - hayat döngüsü

Deponuz git tarafından yönetilen 3 ağaçtan oluşur.

İlki dosyalarınızı tutan
working dir
İkincisi dosyalarınızı tuttuğunuz
stage
Sonuncusu yaptığınız commit'i gösteren
head

git - eklemek & işlemek

Değişikliklerinizi stage'e belirtmek için,

git <dosya/klasörAdı>

düzenli ifadeleri destekler

git *

git hayat döngüsünde ilk adımdır. Yaptığınız
değişikliklere not düşüp işlemek gerekecektir

git commit -m "notunuz"

Hayat döngüsündeki son aşama olan head bölümüne
eklendi, henüz sunucu da değiller.

git - sunucuya göndermek

Değişiklikleriniz yerel depodaki head içerisinde, sunucuya göndermek için;

git push origin master

değişiklikleriniz master dalına gider, kodlarınızın kararlı olduğu daldır.


sunucunuz (uzak depo; github, bitbucket vs.) yoksa, eklemek için;

git remote add origin <sunucu>

git - dallar

Farklı özellikleri ayrı ayrı geliştirmek için dallar tercih edilir. Varsayılan dal master'dır.
Diğer dallar geliştirildikten sonra master'a birleştirilir.

"ozellik_a" adıyla yeni bir dal oluşturup o dala geçmek için

git checkout -b ozellik_a

master'a geri geçmek için

git checkout master

oluşturduğumuz dalı silmek için

git branch -d ozellik_a

bir dalı uzak deponuza göndermedikçe başkaları tarafından kullanılamaz

git push origin <dal>

git - güncelleme & birleştirme

Son işlenen değişiklikleri yerel deponuza almak için

git pull

Alınan bu değişiklikleri alma fetch ve birleştirme merge
işlemlerine tabi tutacaktır.

Aktif çalıştığınız dala başka bir dalı birleştirmek için

git merge <dal>

Her iki durum için, git değişiklikleri
otomatik birleştirme auto-merging dener.
Her zaman mümkün olmamakla birlikte çakışmalarla conflict sonulanabilir.
git size çakışmaları gösterdiği takdirde
el ile düzeltmek size düşer.

Değişikliklerden sonra dosya eklemek için

git add <dosya/klasörAdı>

değişiklikleri birleştirmeden önce dallar arasındaki
farklılıkları görmek için

git diff <kaynak_dal> <hedef_dal>

git - sürümleme tag

Deponuz için sürüm adı tag oluşturmanız tavsiye edilir.
SVN'de de mevcut olan aşina olunan bir kavramdır.
0.1 adıyla bir tag oluşturmak için

git tag 0.1 edf04a7

edf04a7 deponuzdaki işlenen commit numarasının ilk 10 karakteridir.
Tüm işlenen numaralarını görmek için

git log

git - yerel değişiklikleri geri almak

Yanlış birşey yapmanız durumunda
yerel deponuzdaki değişiklikleri geri almak için

git checkout -- <dosyaadı>

bu işlem, head içerisindeki son içerik
ile değiştirilir. Diğer dosyalar güvende.

Bütüm yerel değişiklik ve işlenenlerinizi iptal etmek istiyorsanız,
sunucudan en son kayıtları getirin

git fetch origin

ve yerel master dalınıza gösterin

git reset --hard origin/master

git - renkli çıktı

git config color.ui true

git - ileri seviye

git - son değişiklikleri ziplemek

git archive -o ../guncelleme.zip HEAD $(git diff --name-only HEAD^)

git - iki commit arasındaki değiştirilmiş dosyaları ziplemek

git archive -o ../son.zip <yeni_commit_id> $(git diff --name-only <eski_commit_id> <yeni_commit_id>)