Merhaba! Git ile GitHub’da bulunan bir projeyi başka bir bilgisayara indirmen için aşağıdaki adımları izleyebilirsin. Adımlar, Visual Studio ve Git kullanarak projeyi sorunsuz bir şekilde almanı sağlayacaktır.

1. Git’i Bilgisayarına Yükle

Eğer Git yüklü değilse, ilk olarak Git’i indirmen gerekebilir. Git’in resmi web sitesi üzerinden Git’i indirip kurabilirsin.

2. Visual Studio’yu Yükle

Eğer Visual Studio yüklü değilse, Visual Studio’nun en son sürümünü Visual Studio’nun web sitesinden indirebilirsin.

3. GitHub Projesini İndirmek

Projeni indirmek için şu adımları izleyebilirsin:

Adım 1: Git Komut Satırını Aç

  • Windows kullanıyorsan, Git Bash ya da Komut İstemcisi’ni açabilirsin. Git Bash, Git kurulumu sırasında yüklenecektir.

Adım 2: GitHub Projesini Klonla

Komut satırında, projenin kaydedileceği dizine git ve aşağıdaki komutu kullanarak projeyi bilgisayarına klonla.

git clone https://github.com/HrnDmr/GitOrnekProje.git

Bu komut, GitOrnekProje adlı projenin GitHub reposunu bilgisayarına indirecektir.

Adım 3: Projeyi Visual Studio ile Aç

  • GitHub reposunu bilgisayarına indirdikten sonra, indirdiğin klasördeki GitOrnekProje.sln dosyasına çift tıklayarak Visual Studio’da açabilirsin.

Adım 4: Gerekli Bağımlılıkları Yükle (Varsa)

Eğer projede NuGet paketleri ya da bağımlılıklar varsa, Visual Studio açıldığında bunlar otomatik olarak indirilecektir. Eğer herhangi bir hata alırsan, Tools > NuGet Package Manager > Restore NuGet Packages yolunu izleyebilirsin.

4. Değişiklikler Yapıp Push Etmek (Opsiyonel)

Projeyi başarıyla indirip açtıktan sonra, üzerinde değişiklikler yapabilirsin. Eğer değişiklik yaptıysan, bunları GitHub’a göndermek için aşağıdaki adımları takip edebilirsin.

Adım 1: Değişiklikleri Kontrol Et

git status

Adım 2: Değişiklikleri Stajetle (Stage)

Değişikliklerini kaydetmek için aşağıdaki komutu kullanabilirsin. Bu, yapılan değişiklikleri Git’e bildirir.

git add .

Adım 3: Commit Yap

Değişiklikleri commit’lemek için aşağıdaki komutu kullanabilirsin. Komut, değişikliklerin kaydedilmesini sağlar.

git commit -m "Yaptığım değişiklikler"

Adım 4: GitHub’a Push Et

Değişiklikleri GitHub’a göndermek için aşağıdaki komutu kullanabilirsin:

git push origin main

Bu, main dalına (branch) yapılan değişiklikleri gönderecektir. Eğer farklı bir dal kullanıyorsan, main yerine o dalın adını yazman gerekir.

Bu adımları takip ederek GitHub’dan projeni başarıyla indirebilir ve üzerinde çalışabilirsin.

git bash açtığımda aşağıdaki gibi yazılar çıkıyor nereye indireceğimi nasıl tarifleyebilirim ?
harun@HARUNDEMIR-LPTP MINGW64 ~
$

Git Bash açtığında gördüğün bu harun@HARUNDEMIR-LPTP MINGW64 ~ satırı, Git Bash’in o anki çalışma dizinini gösteriyor. Burada, ~ işareti kullanıcının ana dizinine (C:\Users\harun) işaret eder. Bu, senin bilgisayarındaki kişisel kullanıcı klasöründür.

Projeyi başka bir dizine, örneğin masaüstüne ya da belirli bir klasöre indirmek istersen, gitmek istediğin dizini belirtmen gerekecek. İşte bunu nasıl yapabileceğin adım adım açıklanmıştır:

1. Git Bash’te İstediğin Dizine Gitmek

Git Bash üzerinde cd (change directory) komutunu kullanarak istediğin dizine geçebilirsin.

Örnek: Masaüstüne Gitmek

Eğer projeyi Masaüstüne indirmek istersen, şu komutu yazabilirsin:

cd ~/Desktop

Bu komut seni masaüstüne götürür. Eğer başka bir dizine gitmek istersen, o dizinin yolunu kullanman gerekecek.

Örnek: Belirli Bir Klasöre Gitmek

Eğer masaüstü yerine başka bir klasöre (örneğin, “Projeler” adlı bir klasöre) gitmek istersen, şu komutu kullanabilirsin:

cd ~/Projeler

Eğer böyle bir klasör yoksa, önce bu klasörü oluşturman gerekebilir:

mkdir ~/Projeler
cd ~/Projeler

Bu komut, “Projeler” adında bir klasör oluşturur ve oraya geçer.

2. GitHub Projesini İndirmek

Hedef dizine gitmek için yukarıdaki adımları takip ettikten sonra, projeni GitHub’dan klonlamak için şu adımları izleyebilirsin:

Adım 1: GitHub Projesini Klonla

Git Bash’te şu komutu yazarak projenin GitHub reposunu indirebilirsin:

git clone https://github.com/HrnDmr/GitOrnekProje.git

Bu komut, GitOrnekProje adındaki projeyi, şu an bulunduğun dizine (masaüstü ya da seçtiğin başka bir klasöre) klonlayacaktır.

Adım 2: Projeyi Görmek

Proje başarıyla indirildikten sonra, projeye geçmek için şu komutu kullanabilirsin:

cd GitOrnekProje

Bu komut, GitOrnekProje klasörüne geçmeni sağlar ve o klasörde çalışmaya devam edebilirsin.

Özet

  • Git Bash açıldığında, ~ işareti seni kullanıcının ana dizinine götürür.
  • cd komutunu kullanarak gitmek istediğin dizine (örneğin masaüstüne) geçebilirsin.
  • GitHub projesini git clone komutuyla belirlediğin dizine indirebilirsin.

Bu adımlarla istediğin yere projeyi indirip Visual Studio ile açabilirsin.

fatal: destination path ‘GitOrnekProje’ already exists and is not an empty directory.
hatasını aldım ?

Bu hata, GitOrnekProje adlı bir klasörün halihazırda bulunduğun dizinde var olduğunu ve bu klasörün boş olmadığını belirtiyor. Git, aynı isme sahip ve içinde dosya bulunan bir klasöre proje klonlamanıza izin vermez.

Bu durumu çözmek için birkaç farklı yöntem var. İşte çözüm yolları:

1. Mevcut Klasörü Silmek

Eğer GitOrnekProje klasöründeki mevcut dosyaların önemli olmadığını düşünüyorsan, bu klasörü silebilir ve tekrar klonlama işlemini gerçekleştirebilirsin.

1.Git Bash’te bu klasörü silmek için şu komutu yazabilirsin:

rm -rf GitOrnekProje

Bu komut, GitOrnekProje klasörünü ve içindeki tüm dosyaları kalıcı olarak siler.

2. Klasör silindikten sonra, tekrar git clone komutunu çalıştırabilirsin:

git clone https://github.com/HrnDmr/GitOrnekProje.git

2. Farklı Bir İsimle Klasör Klonlamak

Eğer GitOrnekProje adlı klasörü silmek istemiyorsan ve mevcut dizinde başka bir klasör ismiyle proje indirmek istiyorsan, git clone komutunu farklı bir hedef klasör ismiyle çalıştırabilirsin.

1.git clone komutuna bir klasör adı ekleyerek projeyi farklı bir klasöre klonla:

git clone https://github.com/HrnDmr/GitOrnekProje.git YeniKlasorAdi

Burada YeniKlasorAdi yeni oluşturulacak klasörün adı olacaktır. Bu komut, projeyi YeniKlasorAdi adında bir klasöre klonlayacaktır.

3. Klasörü Boşaltmak (İçeriğini Temizlemek)

Eğer GitOrnekProje klasörünün içeriğini tutmak istiyorsan ancak sadece GitHub projesini bu klasöre almak istiyorsan, mevcut içeriği silip sadece git klonlama işlemi yapabilirsin.

1.Klasördeki dosyaları manuel olarak silebilir ya da şu komutla temizleyebilirsin:

rm -rf GitOrnekProje/*

2.Daha sonra git clone komutunu tekrar çalıştırabilirsin:

git clone https://github.com/HrnDmr/GitOrnekProje.git

Bu yöntemlerden birini seçerek hatayı düzeltebilir ve projeyi doğru şekilde indirebilirsin.

bu projeyi indirdim bu proje üzerinden devam ederken burada kaldığım yeri githuba yüklemek istiyorum

Projeyi başarıyla indirdikten sonra, üzerinde yaptığın değişiklikleri GitHub’a yüklemek (push etmek) için aşağıdaki adımları takip edebilirsin. Bu işlem, GitHub’daki projeni güncellemek ve yaptığın değişiklikleri paylaşmak için gereklidir.

Adım 1: Git Konfigürasyonunu Kontrol Et

Eğer daha önce hiç Git ile çalışmadıysan veya ilk kez bu bilgisayarda Git kullanıyorsan, öncelikle kullanıcı bilgilerini ayarlaman gerekiyor.

Git Bash’te şu komutları çalıştırarak kullanıcı bilgilerini ayarlayabilirsin:

git config --global user.name "Adınız Soyadınız"
git config --global user.email "email@example.com"

Bu komutlar, Git’in kimliğini tanıyabilmesi için gereklidir.

Adım 2: Proje Klasörüne Git

GitHub’dan projeyi zaten indirdiğine göre, terminalde bu proje klasörüne geçmen gerekecek.

Git Bash’i aç ve projeyi indirdiğin dizine git:

cd /path/to/GitOrnekProje

Örneğin, projeyi masaüstüne indirdiysen, şu komutla masaüstüne geçebilirsin:

cd ~/Desktop/GitOrnekProje

Adım 3: Değişiklikleri Kontrol Et

Projende değişiklik yaptıysan, bunları görmek için şu komutu kullanabilirsin:

git status

Bu komut, hangi dosyaların değiştirildiğini, hangi dosyaların henüz eklenmediğini (stage edilmediğini) gösterir.

Adım 4: Değişiklikleri Stajetle (Stage) Et

Değişikliklerinizi Git’e kaydettirmek için önce stage (ekle) etmen gerekmektedir. Tüm değişiklikleri eklemek için şu komutu kullanabilirsin:

git add .

Bu komut, tüm dosyaları stage eder. Eğer sadece belirli dosyaları stage etmek istiyorsan, dosya ismini belirtmen gerekebilir:

git add dosyaAdi.cs

Adım 5: Değişiklikleri Commit Et

Yaptığın değişiklikleri kaydetmek için bir commit yapman gerekecek. Aşağıdaki komutla commit işlemi gerçekleştirebilirsin:

git commit -m "Değişiklikler hakkında açıklama"

Not: “Değişiklikler hakkında açıklama” kısmını, yaptığın değişiklikleri anlatan kısa bir açıklama ile değiştir.

Adım 6: GitHub’a Push Et

Değişikliklerini GitHub’daki projene yüklemek için push komutunu kullanman gerekebilir. GitHub’daki ana dal (branch) genellikle main veya master olur. Eğer main dalını kullanıyorsan, şu komutu kullanabilirsin:

git push origin main

Eğer projede başka bir dal (branch) kullanıyorsan, dal ismini belirtmelisin. Örneğin, develop dalını kullanıyorsan:

git push origin develop

Adım 7: Giriş Yap (Eğer İstenirse)

Eğer GitHub hesabına giriş yapmadıysan, push işlemi sırasında GitHub kullanıcı adı ve şifreni (ya da GitHub Personal Access Token) girmen istenebilir. GitHub’da şifre yerine token kullanman gerektiğini unutma, çünkü şifre desteği GitHub tarafından kaldırıldı.

Özet

  • git status ile değişiklikleri kontrol et.
  • git add . ile değişiklikleri stage et.
  • git commit -m “açıklama” ile commit yap.
  • git push origin main ile değişiklikleri GitHub’a yükle.

Bu adımları takip ederek, projende yaptığın değişiklikleri GitHub’a başarıyla yükleyebilirsin.

error: src refspec main does not match any
error: failed to push some refs to ‘https://github.com/HrnDmr/GitOrnekProje.git’
hatasını aldım ?

Bu hata, genellikle main dalının mevcut olmaması nedeniyle meydana gelir. GitHub’daki proje farklı bir dal (branch) kullanıyorsa, bu durumda main yerine o dalın adıyla push yapman gerekebilir.

Hata Açıklaması

error: src refspec main does not match any

Bu, main dalının yerel reposunda mevcut olmadığı anlamına gelir. Bunun birkaç nedeni olabilir:

  1. Ana dalın adı farklı: GitHub’daki proje, main yerine master veya başka bir dal ismi kullanıyor olabilir.
  2. Henüz commit yapılmadı: Eğer projeye yeni başladın ve henüz bir commit yapmadıysan, Git’in push yapacak bir dalı yok demektir.

Çözüm Yolları

1. Ana Dalın Adını Kontrol Et

GitHub’daki ana dalın adı main yerine master veya başka bir ad olabilir. Bu durumda, hangi dalın kullanıldığını kontrol etmek için şu adımları izleyebilirsin:

1.Git Bash’i aç ve projeni bulunduğun dizinde kontrol et:

git branch

Bu komut, mevcut dalı gösterecektir. Eğer main yerine başka bir dal adı (örneğin master) görünüyorsa, push komutunu o dal adına göre değiştirmelisin.

2.Eğer dalın adı master ise, şu komutu kullanarak değişikliklerini GitHub’a gönderebilirsin:

git push origin master

2. İlk Commit’i Yapmak

Eğer projeyi yeni indirdiysen ve daha önce hiç commit yapmadıysan, bu hatayı alırsın çünkü Git, push yapacak bir şey bulamaz.

İlk commit’i yapmak için şu adımları izleyebilirsin:

1. Proje klasöründe herhangi bir dosya değişikliği yaptıysan, git status komutuyla değişikliklerinizi kontrol et:

git status

2. Değişiklikleri stage et:

git add .

3. İlk commit’i yap:

git commit -m "İlk commit"

4. Ardından git push origin main veya git push origin master komutunu kullanarak değişiklikleri GitHub’a gönder.

3. GitHub Projesinin Uzak URL’sini Kontrol Et

GitHub projesine bağlanırken doğru uzak URL’yi kullandığından emin ol. Uzak URL’yi kontrol etmek için şu komutu kullanabilirsin:

git remote -v

Bu komut, uzak GitHub reposunun URL’sini gösterecektir. Eğer yanlış URL varsa, doğru URL’yi ayarlamak için şu komutu kullanabilirsin:

git remote set-url origin https://github.com/HrnDmr/GitOrnekProje.git

Sonra tekrar git push origin main veya git push origin master komutunu deneyebilirsin.

Özet

  • Ana dalın adı farklı olabilir: main yerine master gibi bir dal adı kullanılıyor olabilir.
  • Henüz commit yapılmamış olabilir: İlk commit’i yapmadan push yapmaya çalışıyorsan bu hatayı alırsın.
  • GitHub URL’si yanlış olabilir: Uzak URL’yi kontrol et.

Bu çözüm yolları ile hatayı çözebilir ve projeni başarıyla GitHub’a yükleyebilirsin.

projemde birden fazla dal varsa hangisini clone edeceğimi nasıl belirtirim ?

Eğer GitHub’daki projenin birden fazla dalı (branch) varsa ve belirli bir dalı (branch) klonlamak istiyorsan, Git komutlarını kullanarak istediğin dalı seçebilirsin. Git, varsayılan olarak main veya master dalını klonlar, ancak başka bir dalı klonlamak istersen, bunu da kolayca yapabilirsin.

1. Tüm Dalları Listeleme

GitHub’daki projeyi klonlamadan önce, hangi dalların mevcut olduğunu görmek için şu komutu kullanabilirsin:

git branch -r

Bu komut, uzaktaki (remote) tüm dalları listeler. Örneğin, aşağıdaki gibi bir çıktı alabilirsin:

origin/main
origin/develop
origin/feature-branch

Bu, projede main, develop ve feature-branch gibi dallar olduğunu gösterir.

2. Belirli Bir Dalı Klonlamak

GitHub’daki bir projede birden fazla dal varsa ve yalnızca belirli bir dalı (branch) klonlamak istiyorsan, aşağıdaki komutu kullanabilirsin:

git clone -b dal-adi https://github.com/HrnDmr/GitOrnekProje.git

Burada dal-adi kısmını, klonlamak istediğin dalın adıyla değiştirmen gerekiyor.

Örneğin, develop dalını klonlamak istersen:

git clone -b develop https://github.com/HrnDmr/GitOrnekProje.git

Bu komut sadece develop dalını klonlayacaktır.

3. Tüm Dalları Klonlamak (Varsayılan Dal)

Eğer projede birden fazla dal varsa ve hepsini almak istiyorsan, git clone komutu yalnızca varsayılan dalı klonlar (genellikle main veya master), fakat diğer dallara daha sonra geçiş yapabilirsin.

Proje ilk klonlandığında, git otomatik olarak origin/main (ya da origin/master) dalını kopyalar. Diğer dallara geçmek için şu komutları kullanabilirsin:

4. Diğer Dallara Geçiş Yapmak (Checkout)

Projeyi klonladıktan sonra, başka bir dalda çalışmak istersen, şu komutu kullanarak o dala geçebilirsin:

git checkout dal-adi

Örneğin, develop dalına geçmek için şu komutu kullanabilirsin:

git checkout develop

Eğer develop dalı daha önce klonlanmamışsa, bu komut dalı indirir ve geçiş yapar.

5. Diğer Dalları İndirmek (Fetch)

Eğer projeyi zaten klonladıysan ve başka dalları indirmen gerekiyorsa, git fetch komutunu kullanarak uzak depo ile senkronize olabilirsin

git fetch origin

Bu komut, uzak repodaki tüm dalları yerel bilgisayarına indirir. Daha sonra git checkout komutuyla istediğin dalda çalışmaya başlayabilirsin.

Özet

Belirli bir dalı klonlamak için:

git clone -b dal-adi https://github.com/HrnDmr/GitOrnekProje.git

Projeyi klonladıktan sonra diğer dallara geçmek için:

git checkout dal-adi

Diğer dalları almak için:

git fetch origin

Bu adımları takip ederek, istediğin dalda çalışmaya başlayabilirsin.

Git uzak repoya bağlamak için

git remote add origin https://github.com/HrnDmr/repoadi.git

Bu komut, yerel Git depo bağlantınızı bir uzaktan (remote) depoya bağlar. Burada origin, GitHub’daki depoyu tanımlamak için kullanılan bir etiket ve https://github.com/HrnDmr/repoadi.git de GitHub’daki repository (depo) URL’sidir. Bu komut sayesinde yerel deponuzu GitHub’daki uzak depoyla ilişkilendirmiş oluyorsunuz.

git branch -M main

Bu komut, yerel depo üzerindeki mevcut dalı (branch) main olarak yeniden adlandırır. Eğer GitHub depoları oluşturulurken varsayılan dal ismi master olarak ayarlanmışsa, bu komut dalın ismini main olarak değiştirmek için kullanılır. Bu, günümüzde daha yaygın olan dal adı main’i kullanmanızı sağlar.

git push -u origin main

Bu komut, yerel deponuzdaki main dalındaki değişiklikleri GitHub’daki origin adlı uzak depoya gönderir (push eder). -u parametresi ise, bu komutun bir sonraki çalıştırılmasında Git’e otomatik olarak origin‘i ve main dalını hatırlatmasını sağlar, böylece ileride sadece git push komutunu kullanabilirsiniz.

Bir kez git push -u origin main komutunu kullandıktan sonra, Git, yerel deponuz ile uzak deponuz arasındaki bağlantıyı hatırlar. Bu sayede, ilerleyen zamanlarda sadece git push komutunu kullanarak değişikliklerinizi GitHub’a gönderebilirsiniz. Yani, her seferinde git push -u origin main yazmanıza gerek kalmaz; sadece git push yeterli olur.

Bu kolaylık, günlük Git kullanımlarında işinizi oldukça hızlandırır.

Yeni bir branch ekleyip yaptığımız değişiklikleri yeni branch’a göndermek için ise:

git checkout -b yenibranch

Bu komut, yeni bir dal oluşturur ve otomatik olarak o dalda çalışmaya başlarsınız. yenibranch yerine istediğiniz başka bir dal ismi verebilirsiniz.

Değişikliklerinizi yapın ve ekleyin: Yapmak istediğiniz değişiklikleri yapıp, ardından git add . ve git commit -m “mesaj” komutlarıyla değişikliklerinizi kaydedin.

git push -u origin yenibranch

Bu komut, yenibranch adlı dalınızı GitHub’daki depoya gönderir. -u parametresi, bu dalı GitHub’da origin ile ilişkilendirir ve bir sonraki sefer git push komutunu yazdığınızda bu dal otomatik olarak hedef alınır.

Git’te mevcut dalları (branch) listelemek için aşağıdaki komutları kullanabilirsiniz:

1.Yerel dalları listelemek için:

git branch

Bu komut, yalnızca yerel depo üzerinde bulunan dalları gösterir.

2.Hem yerel hem de uzak dalları listelemek için:

git branch -a

Bu komut, hem yerel hem de uzak deponuzda bulunan tüm dalları listeler. Uzak dallar, remotes/origin/ ile başlar.

3.Uzak dalları listelemek için:

git branch -r

Branch Birleştirme

Eğer test branch’ını main branch’ı ile birleştirip (merge) sonra test branch’ını silmek istiyorsanız, aşağıdaki adımları takip edebilirsiniz:

1. Main branch’ına geçiş yapın:

Öncelikle, main branch’ına geçiş yapmalısınız. Çünkü birleştirmeyi (merge) main branch’ı üzerinde yapacaksınız.

git checkout main

2. Test branch’ını main branch’ına birleştirme:

Şimdi, test branch’ını main branch’ına birleştirebilirsiniz.

git merge test

Bu komut, test branch’ındaki tüm değişiklikleri main branch’ına ekleyecektir. Eğer herhangi bir çatışma (conflict) çıkarsa, bu çatışmaları çözmeniz gerekebilir.

3. Test branch’ını silmek:

Birleştirme işlemi tamamlandıktan sonra, test branch’ını silebilirsiniz. Hem yerel hem de uzak test branch’ını silebilirsiniz:

a. Yerel test branch’ını silmek:

git branch -d test

Bu komut, yerel test branch’ını siler. Eğer test branch’ı hala main branch’ına merge edilmemiş değişiklikler içeriyorsa, Git sizi uyaracaktır. Bu durumda -D parametresi ile zorla silebilirsiniz:

git branch -D test

b. Uzak test branch’ını silmek:

git push origin --delete test

Bu işlemle birlikte:

  • test branch’ındaki değişiklikleri main branch’ına başarıyla birleştirmiş oluyorsunuz.
  • test branch’ını hem yerel hem de uzak depodan silmiş oluyorsunuz.

 

Eğer ileride yeniden test branch’ını oluşturmak isterseniz, git checkout -b test komutuyla yeni bir test branch’ı oluşturabilirsiniz.

Git komutları olan git log, git status ve git diff hakkında açıklamaları yapalım

1. git log

Ne işe yarar?

Bu komut, commit geçmişinizi gösterir. Yani, geçmişte yapılmış tüm commit’leri listeler.

Kullanımı

git log

Bu komut, commit mesajlarını, commit yapan kişiyi, tarihler ve commit hash’lerini (her commit’e özgü benzersiz bir kimlik) sıralar.
örnek çıktı

commit 9c3a5d5a2b4a2d16f647ecbfa0fbbd89b3bb2f2d
Author: HrnDmr <example@example.com>
Date:   Tue Nov 21 16:21:56 2024 +0300

    İlk commit

commit 1d4f3f2b4a2a325f28f7b3e8eabdf9fd6d9a4f4d
Author: HrnDmr <example@example.com>
Date:   Tue Nov 21 15:45:22 2024 +0300

    Başlangıç dosyası eklendi

Özellikler:

  • git log çıktısında commit’ler tarih sırasına göre, en son commit en üstte olacak şekilde listelenir.
  • Her commit’in yanında, commit’in yapıldığı tarih, yazar bilgisi ve commit mesajı yer alır.

Ek parametrelerle kullanımı:

  • Daha özelleştirilmiş bir çıktı almak için bazı parametreler kullanılabilir.
  • Örneğin:git log –oneline: Her commit’i tek satırda özetler, daha kısa bir görünüm sağlar.
  • git log –graph: Commit geçmişini bir ağaç yapısı (grafiksel) olarak gösterir.

2. git status

Ne işe yarar?

Bu komut, çalışma dizininiz ile Git deposu arasındaki farkları gösterir. Hangi dosyaların değiştirildiğini, hangi dosyaların henüz eklenmediğini (staged) veya commit edilmediğini görmek için kullanılır.

Kullanımı

git status

Örnek Çıktı

On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   index.php

no changes added to commit (use "git add" and/or "git commit -a")

Açıklamalar:

  • git status, çalışma dizininizdeki değişikliklerin durumunu gösterir.
  • Eğer bir dosya değiştirilmişse ama henüz git add ile stage edilmemişse, bu dosya “Changes not staged for commit” kısmında görünür.
  • Eğer bir dosya stage edilmişse (git add ile), o zaman “Changes to be committed” altında yer alır.
  • Ayrıca, eğer yerel deponuz uzak depo ile senkronize ise, git status bununla ilgili bilgi de verir.

3. git diff

Ne işe yarar?

Bu komut, çalışma dizininiz ile en son commit arasındaki farkları (değişiklikleri) gösterir. Başka bir deyişle, henüz commit edilmemiş değişikliklerin ne olduğunu görmek için kullanılır.
Kullanımı:

git diff

diff --git a/index.php b/index.php
index 39c7f17..a2c3b4d 100644
--- a/index.php
+++ b/index.php
@@ -1,6 +1,6 @@
 <html>
-  <head>
+  <title>Değişiklik Yapıldı</title>
 </head>
 <body>
-    <h1>Merhaba, dünya!</h1>
+    <h1>Yeni Başlık!</h1>
 </body>
</html>

Açıklamalar:

  • git diff komutu, çalışma dizininizdeki değişikliklerin içeriğini gösterir. Hangi satırların değiştiğini (veya eklenip silindiğini) ayrıntılı olarak görüntülemenizi sağlar.
  • Çıktıda, işaretiyle silinen satırlar ve + işaretiyle eklenen satırlar belirtilir.
  • Bu komut yalnızca yerel değişikliklerinizi gösterir ve henüz commit edilmemiş dosyalar için çalışır.

Özet:

  • git log: Commit geçmişinizi gösterir, hangi commit’in ne zaman yapıldığını görmenizi sağlar.
  • git status: Çalışma dizininizin ve staging alanınızın durumunu gösterir. Hangi dosyaların değiştirilip commit edilmediğini görmenizi sağlar.
  • git diff: Çalışma dizininde yaptığınız değişikliklerin içeriğini, yani hangi satırların değiştiğini gösterir.

consol’da  aşağıya indiğinizde end yazıyor ve komut girmenize izin vermiyorsa

Bu durum, git diff komutunun çıktısının terminal penceresinde kaydırılabilir olması nedeniyle meydana gelir. Git, değişikliklerinizi sayfalar halinde gösterdiğinde, genellikle sayfa kaydırma işlevini sağlamak için bir pager (genellikle less) kullanır. Bu durumda, terminal çıktısının sonunda “end” yazması ve başka işlem yapamamanız, pager’ın çıktıyı tamamen göstermesinin ardından sizden bir giriş beklemesidir.

Çözüm:

1.Çıktıyı geçmek için:

  • less pager’ı kullanılıyorsa, terminalde şu adımları izleyebilirsiniz:
  • Çıktıyı aşağıya kaydırmak için ↓ (aşağı ok) tuşuna basın.
  • Çıktıyı yukarı kaydırmak için ↑ (yukarı ok) tuşuna basın.
  • Pager’dan çıkmak için q tuşuna basın.

2.git diff komutunu doğrudan tam ekran göstermek için:

Eğer git diff çıktısının tamamını doğrudan terminalde görmek istiyorsanız, komutun sonuna –no-pager ekleyebilirsiniz. Bu, Git’in çıktıyı bir pager (sayfa kaydırıcı) kullanmadan doğrudan terminal ekranına yazmasını sağlar.

git diff --no-pager

Bu komut, diff çıktısını doğrudan gösterir ve daha fazla kaydırma veya “end” mesajıyla karşılaşmazsınız.

Özetle:

  • Eğer çıktı fazla uzun ve terminal kaydırma işlevi devredeyse, q tuşu ile pager’dan çıkabilirsiniz.
  • git diff –no-pager komutunu kullanarak çıktıyı pager olmadan tek seferde görebilirsiniz.

Dosya ve klasör hariç tutmak

proje klasörüne .gitignore dosyası oluşturabilir yada aşağıdaki komut ile oluşturabilirsin.

New-Item -Path . -Name ".gitignore" -ItemType "file"

gitignore dosyasını açıp içine yüklenmesini istediğiniz dosyaları girin

.idea/
sifreler.txt

Eğer .idea klasörü zaten Git tarafından izleniyorsa, yani önceden commit edilmişse, onu Git’ten kaldırmanız gerekir. Aşağıdaki komutları kullanarak bunu yapabilirsiniz:

git rm -r --cached .idea
git commit -m "Remove .idea directory from version control"

Bu komutlar .idea klasörünü Git’ten kaldırır ama yerel bilgisayarınızda kalmaya devam eder.

.gitignore dosyasındaki değişiklikleri ve .idea klasörünün kaldırılmasını GitHub’a yollamak için şu komutları kullanın:

git add .gitignore
git commit -m "idea dosyası silindi"
git push

bu komut zaten bildiğimiz commit etme komutlar git add .gitignore ile sadece oluşturduğumuz gitignore dosyasını ekledik sonra bunu mevcutta bulunduğumuz bruncha push ettik.