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
git config --global user.name "name"
Tüm yerel depolar için eposta bilgilerini yapılandırın
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.
git init
veya
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.
git clone uzak_repo_adresi
Github için örnek veriyorum
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.
git add foo/bar/file.ex
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.
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
git status
Log¶
Şuana kadar olan bütün değişiklikleri listelemek ve incelemek içindir.
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.
git reset commit_hash_değeri
Değişiklikleri yerel olarak koruyarak, commit sonrasında verilen tüm commitleri geri alır.
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¶
git branch
Yeni Dal Oluşturmak¶
git branch yeni_dalınızın_ismi
Yeni Dal Oluştur ve Ona geçiş Yap¶
git checkout -b yeni_dalınızın_ismi
Dal Silmek¶
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.
git checkout yeni_dal
Merge¶
yeni_dal da yaptığınız değişiklikleri master dalı ile birleştirmek istiyorsanız.
git checkout master
master dalına geçtim
git merge yeni_dal
yeni_dal daki değişiklikleri master ile birleştirdim.
veyahut
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
git pull
veya
git pull origin master
Push¶
Kendi localinizde \( bilgisayarınızda \) yaptığınız değişiklikleri uzak sunucuda bulunan repoya göndermenizi sağlar.
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.
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
Created: April 16, 2024