
Burada belirtilen komutlar Linux Bash ve GIT Bash komutları olarak başlık altın belirtilecektir. Yani burada belirttiğimiz her kod GIT’ in kodu diye bir şey yok.
Temel Linux Bash Komutları
Ls: List anlamına geliyor. Bulunduğu klasörde olan dosya/klasör vs hepsini listeler.
Ls -la: Gizli klasörleri listelemek için kullanılır.
Cd: Change Directory anlamına gelir. “cd ..” komutu bir üst klasöre geçmeyi ya da istenilen adresi yazarsak oraya gitmemizi sağlar.
Pwd: Bulunduğunuz klasörün tam olarak nere olduğunu adres olarak verir. Yani home/Desktop gibi.
Mkdir: Make Directory anlamına gelir. Yani klasör oluştur dememizi sağlar. mkdir yeniklasor gibi oluşturabiliriz. Sağ tık yeni klasör ile aynı anlamdadır.
Touch: Dokumak. Çok güzel bir anlam 😊 burada touch deneme.txt diyerek dosya oluşturabiliriz.
Rm: Remove anlamına geliyor. Dosya silmede kullanılan en bilinen Linux komutlarından biridir. rm deneme.txt
Rm -rf: Klasör silmede kullanılan silme komutudur. Yanlışlıkla git başlatırsak rm -rf .git diyerek silebiliriz.
Temel GIT Bash Komutları
git status: Bu komut o klasör içerisinde git durumunu gösterir. Yani Commitlenmiş dosya/ klasör var mı? Ya da Silindi mi ? Takip bırakıldı mı ? vs. tüm durumlar ile ilgili bilgi veren komuttur.
git init: İşte bu komut da bulunduğumuz klasörde GIT sistemi yoksa. Onu oluşturmak başlatmak işletmek için ilk olarak bu komutu yazmamız lazım. Böyleye diyoruz ki; Ey GITTT bu klasörde senin ne özelliğin varsa kullan. Buraya yetkilisin hadi bakayım içinden geç 😊 Sonrasın git stasus komutunu çalıştırıp ne olduğunu kontrol edebilirsiniz.
git add: Bu komut artık git sisteminin kurulu olduğu klasörde takip edilmeyen staging areaya yani arafa kaydedilmemiş dosyaları untracking file olan dosyaları klasörleri vs. ekler ve commitlemeye hazırlar. Aşağıda ki kod değişiklik olan tüm dosyaları eklerler.
git add .
git commit: Bu komut artık ilk olarak local repo muza sonrasında göndermek istersek uzak repomuza göndermek istersek oraya kaydeder. Bunun gibi git commit -m “ilk commit” gibi örnek bir komut ile ilk örneğimizi yapabiliriz.
git commit -m "ilk commit"
git commit -a: Bu komut ise ne kadar değişiklik varsa hepsini commitler yani kaydeder artık.
git commit -a
git log: Bu komut ise repomuzda ki yapılan tüm işlemleri gösterir. Bu komutu çalıştırdıktan commit yanında hash kodu görülecektir. Bu hah kodu ile geri dönme vb. işlemleri yapabiliriz.
git branch: Bu komut yeni bir dal oluşturuyor bize. Yani yeni bir özellik ekleyeceğimiz zaman bu komut ile ana yolumuzu etkilemeyecek şekilde bölebiliriz.
git switch: Bu komut ise açtığımız branchler arasında gezinmemizi sağlar. Böylece projeyi hangi yol da devam etmek istiyorsak o checkpointe götürürüz. Yani oyun oynarken 5. Bölümde idik. Ama biz 4. Bölümü de kaydetmiştik ve daha fazla para ile 5. Bölüme gitmek istedik. 4. Bölüme de dönebiliriz.
git merge: Adından da anlaşılacağı gibi birleştirme anlamına gelir. Birleştirmeye aşağıda ayrı bir şekilde gireceğim.
git restore: Dosyayı yeniden ilk haline commitlendiği ilk haline döndürmeyi sağlayan komuttur.
git stash: Stash hafıza almak, saklamak gibi düşünebiliriz. Yani bize dediler ki; ibrahim git login branch’ inde bir geliştirme yap. Ama biz masterdayız ve loginde ki değişiklikler commitlenmeye de hazır değil. İşin kötüsü o kadar kod yazmışız silemeyiz de. Ne yapacağız projeyi komple başka yere mi yedekleyeceğiz? ya da dosyaları? İşte burada stash devreye giriyor. Yani kendi içinde görünmeyen bir hafızaya depola. Ben istersem seni oradan alıp kullanacağım. Benim diğer commitlerime de zarar verme demek için var bu komut. Direk bulunduğumuz branch’ de git stash diyerek o değişiklikleri hafızaya al diyebiliriz.
git stash pop: Yukarı da stash’ lediğimiz değişiklikleri hafızadan alıp uygulamamızı sağlayan komut. Böylece o hafıza da olan değeri alıp tekrar kullanabiliyoruz. Fakat birden fazla stashimiz var ve tek tek almamız gerekiyor. Onlar için ise ilk olarak git stast list komutunu çalıştırıp listemizi kontrol ediyoruz.
git stash apply: Yukarı da ki işlemin devamını yapıyoruz şimdi. Birden fazla stash’i alıp index değerini uygula diyerek onu sadece hafızadan alabiliriz. Örneğin; git stash apply stash@{0} diyerek sadece birinci stashi kullanabiliriz.
Hayat Kurtaran Komutlar
git checkout: Bu komut ile commitler ya da branchler arasında dolaşabiliriz. Yeni bir commit atabilir ya da branch oluşturabiliriz. Bu komut aslında önceki branch veya commit’ de ne varmış oraya bi döneyim bakayım. Demek için var. Eğer oraya döner ve ordan devam etmek isterseniz yeni bir dal yani branch oluşturup sonraki commit ile birleştirererek projeye devam edebilirsiniz. git branch a123d213123ds123123 commit’ in ID’ sini yazarak bunu yapabiliriz.
git reset: Bu komut geçmiş dönmek için daha çok tercih edilebilir bir komut. Çünkü git reset a123d213123ds123123 derseniz o commite dönmüş olursunuz ama 3 commit öncesine döndünüz. Böylece sonrasında kalan 2 commiti silmiş oluyorsunuz. git reset – hard a123d213123ds123123 derseniz head’ i vs. bozmadan geriye dönmüş olursunuz.
git revert: Bu komut geriye dönme işlemleri için daha harika bir komut. Şöyle düşünün. Yol haritanızdan şaşmadan geriye dönüp hem de son yaptığınız değişiklikler kaybolmasın istiyorsanız bu komutu kullanabilirsiniz. Yani commit1 / commit2 / commit3 var diyelim. Son commitimiz commit3 olsun. Biz commit1 e dönmek istiyoruz ve git revert commit1 diye hash’ ini yazarak oraya döndük. Böylece GİT sistemi yeni bir commit daha oluşturdu commit4 gibi düşünebilirsiniz. Bu commitin mesajına da dedi ki; revert: commit4.
Yani sen commit1 e döndün ama ben seni yolundan etmedim commit2 ve 3’ ü sildim(ama hafızada duruyor yine) ve seni commit4 isimli yeni bir commit’ yerleştirdim. Bu yaptığımız en sağlıklı yollardan biri.
git diff: Bu komut iki branch, commit, dosya vs aralarında karşılaştırma yapan komuttur. Değişikliğe uğramış iki dosyayı karşılaştırır ve tüm farkı karşınıza listeler.
git rebase: Bu komut bazı değiştirmek demektir. Yani projenin master branch’ in de yeni commitler atıldı. Biz de dedik ki; arkadaşım bu commitleri de alalım projemiz güncel olsun onların üstüne kodu çıkalım. Fakat bizim kendi branchimizde örn; ibo’ da bir sürü merge commiti oluştu. Bunu ortadan kaldırmak için yani bizim merge commitlerimizi ve asıl alınan commitleri sıralamak için ip gibi yapmak için kullanılan komuttur. Projemizi paylaşıma açtıysak ve insanların kullanımına sunmuşsak bu komutu ASLA kullanmamamız gerekir. Hem logları temizlemek hem de tarihi yeniden yazmak için kullanabiliriz.