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
Tüm yerel depolar için eposta bilgilerini yapılandırın
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.
veya
Clone¶
Uzak bir git sunucusundan projeyi ve tüm sürüm geçmişini indirmek için clone
komutunu
kullanın.
Github için örnek veriyorum
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.
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.
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
Log¶
Şuana kadar olan bütün değişiklikleri listelemek ve incelemek içindir.
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.
Değişiklikleri yerel olarak koruyarak, commit sonrasında verilen tüm commitleri geri
alır.
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¶
Yeni Dal Oluşturmak¶
Yeni Dal Oluştur ve Ona geçiş Yap¶
Dal Silmek¶
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.
Merge¶
yeni_dal da yaptığınız değişiklikleri master dalı ile birleştirmek istiyorsanız.
master dalına geçtim
yeni_dal daki değişiklikleri master ile birleştirdim.
veyahut
yazarak bulunduğunuz dala master dalındaki değişiklikleri çekebilirsiniz.
Pull¶
Uzak sunucuda bulunan repodaki değişiklikleri almanızı \( sekronize \) sağlar
veya
Push¶
Kendi localinizde \( bilgisayarınızda \) yaptığınız değişiklikleri uzak sunucuda bulunan
repoya göndermenizi sağlar.
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.
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.