Ana içeriğe geç

Git komutlar

Git Komutları

Git’i kurduk konfigürasyon ayarlarımızı yaptık şimdi git komutlarını öğrenme zamanı
geldi.

Hatırlatma

Tüm yerel depolar için kullanıcı bilgilerini yapılandırın

Bash
git config --global user.name "name"

Tüm yerel depolar için eposta bilgilerini yapılandırın

Bash
git config --global user.email "email address"

bu bilgiler git tarafından her değişiklik yaptığınızda yaptığınız değişiklikler ve tarih
ile birlikte tutulurlar.

Inıt

Yeni bir repo \( repository \) oluşturmak için init başlatıcı komutunu kullanın.

Bash
git init

veya

Bash
git init proje-ismi

Clone

Uzak bir git sunucusundan projeyi ve tüm sürüm geçmişini indirmek için clone komutunu
kullanın.

Bash
git clone uzak_repo_adresi

Github için örnek veriyorum

Bash
git clone https://github.com/{kullanıcı_adınız}/{repo_isminiz}.git

Add

https://git-scm.com/docs/git-add

Değişiklik yaptığınız dosyaları staged bölümüne almanızı sağlar.

İlk argümanı olan pathspec‘i dosya yolu ( path ) veya glob olarak verebilirsiniz.

Bash
git add foo/bar/file.ex
Bash
git add *.py

böyle yazarak bütün python dosyalarında yaptığınız değişiklikleri staged bölümüne
alabilirsiniz. pathspec argümanına . olarak verirseniz değişiklik olan bütün
dosyaları alır.

Bash
git add -p

Yaptığınız değişikliklere bakarak ( diff’i gösterilir ) onay sonrası o değişikliği
staged bölümüne almanızı sağlar.

Commit

https://git-scm.com/docs/git-commit

Staged bölgesinde bulunan değişiklikleri bir mesajı ile birlikte kayıt etmenizi sağlar.

git commit -m "commit_mesajınız"

eğer değişiklikleri bir önceki commit üzerine yazmak istiyorsanız ( aslında tam olarak
üzerine yazmaz yeni bir commit atar )

git commit --amend

--amend argümanı kullandığınızda -m argümanını kullanmazsanız bir önceki commit
mesajınız ne ise onu alır, -m kullanır ve commit mesajı girerseniz, teoride bir önceki
commit mesajını düzenlemiş olursunuz.

git commit --amend -m "messages"

Eğer git-hooks kullanıyor
iseniz ( veya git-hooks’u kullanan bir teknoloji kullanıyor iseniz, örneğin
pre-commit)

--no-verify argümanı eğer hookları es geçerek commit atmanızı sağlar.

Status

Durum kontrolu için, size o anki durumunuzu gösterir, add mi yoksa commit komutunu mu
çalıştırmanız gerektiğini burdan bakarak anlayabilirsiniz ve değişen dosyalarıda
listeler

Bash
git status

Log

Şuana kadar olan bütün değişiklikleri listelemek ve incelemek içindir.

Bash
git log

burda atılan commitlere ait

  • Commit’in kim tarafından atıldığı
  • Ne zaman atıldığı
  • Commit mesajı
  • Commit hash değeri

şeklinde çıktı alınır.

Reset

Bir sorun yaşandığında eski bir sürüme geri gelmek için kullanılır, git log sonrası
dönmek istediğiniz commit hash değerini kopyalar ve reset ile o sürüme dönersiniz.

Bash
git reset commit_hash_değeri

Değişiklikleri yerel olarak koruyarak, commit sonrasında verilen tüm commitleri geri
alır.

Bash
git reset --hard commit_hash_değeri

Tüm geçmişi iptal eder ve belirtilen commit’i zamanına döner.

Branch

Dalları listelemek yeni dal oluşturmak ve silmek için kullanılır.

Dalları listelemek
Bash
git branch
Yeni Dal Oluşturmak
Bash
git branch yeni_dalınızın_ismi
Yeni Dal Oluştur ve Ona geçiş Yap
Bash
git checkout -b yeni_dalınızın_ismi
Dal Silmek
Bash
git branch -d dal_ismi

Checkout

Bir daldan diğer bir dala geçiş yapmanızı sağlar, master dalındasınız ve yeni_dal diye
bir dalınız var ona geçmek istiyorsanız.

Bash
git checkout yeni_dal

Merge

yeni_dal da yaptığınız değişiklikleri master dalı ile birleştirmek istiyorsanız.

Bash
git checkout master

master dalına geçtim

Bash
git merge yeni_dal

yeni_dal daki değişiklikleri master ile birleştirdim.

veyahut

Bash
git pull origin master

yazarak bulunduğunuz dala master dalındaki değişiklikleri çekebilirsiniz.

Pull

Uzak sunucuda bulunan repodaki değişiklikleri almanızı \( sekronize \) sağlar

Bash
git pull

veya

Bash
git pull origin master

Push

Kendi localinizde \( bilgisayarınızda \) yaptığınız değişiklikleri uzak sunucuda bulunan
repoya göndermenizi sağlar.

Bash
git push

eğer gönderdiğiniz değişiklikler uzak sunucudaki ile çakışır size push yapmadan önce
pull yapmanız gerektiği ile ilgili bir uyarı mesajı verirsee git ve siz yinede
yaptığınız değişiklikleri uzak sunucudaki silinse bile yapmak istiyorsanız.

Bash
git push -f

burdaki -f force anlamına gelir.

Remote

https://git-scm.com/docs/git-remote

Git reponuzdaki diğer repoları yönetmenizi sağlar.

Bu şu demek birden fazla git reposuna bağlı şekilde çalışabilirsiniz, bunlardan biri
orginal repo diğeri ise upstream repo olabilir. Upstream repo sizin forkladığınız
repodur, bu sayede orginal repodaki yeni güncellemeleri kendi fork’unuza çekebilir ve
güncel bir şekilde geliştirmeye devam edebilirsiniz.

git remote -v yazarak git reponuzda bağlı olan repoların isimlerini ve adreslerini
görebilirsiniz.

git remote add {remote name} {repo adresi} örneğin;
git remote add upstream https://github.com/user/repo.git

git remote remove {remote name} yazarak eklenen repoları silebilirsiniz.

Rebase

https://git-scm.com/docs/git-rebase

Daha önceden atmış olduğunuz commit’i git history’i düzenleyerek en üste taşımanızı
sağlar.

git rebase bulunduğunuz branch’da ( dal ) atmış olduğunuz en son commit’i en üste
taşımanızı sağlar. Bunu ne zaman kullanabiliriz derseniz, git pull sonrası yeni
commitleri reponuza çektikten sonra sizin uzan repoya göndermediğiniz değişiklikleri en
üste taşımaki için kullanabilirsiniz.

Gitignore Dosyası

Gitignore dosyası bizim bazı git tarafından izlenmesini istemediğimiz dosyalar olabilir
bu dosyaları .gitignore dosyası yardımı ile git’e söylüyoruz.

Bu adreste programlama dilleri için gitignore dosyaları mevcut siz projelerinizde hangi
dili kullanıyorsanız bu adresten esinlenerek gitignore dosyanızı oluşturabilir git’in
takip etmesini istemediniz dosyalarınız kontrol altına alabilirsiniz.

https://github.com/github/gitignore