· Hakan Çelik · Git · 4 dk okuma
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 initveya
git init proje-ismiClone
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_adresiGithub için örnek veriyorum
git clone https://github.com/{kullanıcı_adınız}/{repo_isminiz}.gitAdd
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.exgit add *.pybö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 -pYaptığı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 statusLog
Şuana kadar olan bütün değişiklikleri listelemek ve incelemek içindir.
git logburda 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ğeriDeğişiklikleri yerel olarak koruyarak, commit sonrasında verilen tüm commitleri geri alır.
git reset --hard commit_hash_değeriTü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 branchYeni Dal Oluşturmak
git branch yeni_dalınızın_ismiYeni Dal Oluştur ve Ona geçiş Yap
git checkout -b yeni_dalınızın_ismiDal Silmek
git branch -d dal_ismiCheckout
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_dalMerge
yeni_dal da yaptığınız değişiklikleri master dalı ile birleştirmek istiyorsanız.
git checkout mastermaster dalına geçtim
git merge yeni_dalyeni_dal daki değişiklikleri master ile birleştirdim.
veyahut
git pull origin masteryazarak bulunduğunuz dala master dalındaki değişiklikleri çekebilirsiniz.
Pull
Uzak sunucuda bulunan repodaki değişiklikleri almanızı ( sekronize ) sağlar
git pullveya
git pull origin masterPush
Kendi localinizde ( bilgisayarınızda ) yaptığınız değişiklikleri uzak sunucuda bulunan repoya göndermenizi sağlar.
git pusheğ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 -fburdaki -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.
Hakan Çelik

