Git-Version-Control-Commands

Git Yapılandırması

git config --global user.name "Fatih"
git config --global user.email "fatih_duygu@hotmail.com"

  • Global seviyedeki tüm ayarları listelemek için ;
    git config --global -l

Git Proje Oluşturma (Local Repo)

cd desktop/poject_directory
git init
ls -la

Commit and Log

  • Staging areaya eklemek için ;
    git add .

  • commit etmek için ;
    git commit -m "initial commit"

  • Bütün versiyonları listelemek için ;
    git log
    git log -p (ayrıntılı görmek için)
    git log --oneline (ayrıntısız görmek için)

Git Status

  • git status komutu proje dosyalarında yapılan değişiklikleri ve staging areada bulunan dosyaları listeler.
    git status

Diff

  • Projede yapılan değişiklikleri karşılaştırmak için ;
    git diff master branch-A
  • Stage area'ya alınmış dosyalardaki farklılıkları görmek için ;
    git diff --staged

Stash (Geçici Kaydetme)

git stash save "a.java düzenlendi"
git stash list (stashleri listeler)

  • Stashteki dosyalarda yapılan değişiklikleri görmek için ;
    git stash show -p 0(stash id)
  • Stashleri silmek için ;
    git stash drop 1(stash id)
  • Stashleri geri döndürme ;
    git stash pop (LIFO)
    git stash pop 1(stash_id)

"git add" and "git rm"

  • Değişiklikleri stage areaya eklemek için ;
    git add folder_name
  • Bir dosyayı silmek için ;
    git rm folder_name
  • Klasörü silmek için ;
    git rm -r folder_name

Dosya isimlendirme ve Taşıma

git mv a.java b.java
git mv a.java folder/

Değişikliği geri alma (Working Copy)

git restore a.java
git checkout a.java

Değişikliği geri alma (Staging Area)

git restore --staged a.java
git restore a.java

  • Stage areadaki dosya çalışma dizinine tekrar gönderilir ve restore edip eski haline getirilebilir.

Commiti Geri Almak

git revert
git reset

  • Local tüm commitleri silip geri almak için ;
    git revert --hard
    git reset --hard
  • Local commitlerin korunması için ;
    --keep

Son commiti Değiştirmek

  • Son commite dosya eklemek için ;
    git add .
    git commit --amend OR git commit --amend --no-edit
  • Commit mesajını değiştirme ;
    git commit -amend -m "changed commit text"

Versiyon Değiştirme

git checkout (version hash code(first 6 number)) -- .

Githuba Proje Göndermek

  • Github remote link eklenir ;
    git remote add nickname https://...
  • Url'yi düzenlemek için ;
    git remote set -url nickname https://...
  • Proje push edilerek gönderilir ;
    git push -u | -f nickname master

Remote Proje Oluşturma

git clone https:/github.com/fatihhduygu/...

  • Projeyi clonelayınca fetch ve push değerleri gelir ve remote ismi varsayılan olarak origin'dir.
  • Projeyi push etmek için ;
    git push origin master
  • Uzak repository ile ilgili bilgiler ;
    git remote -v

Fetch, Pull

  • Remotedan güncelleme yapmak için ;
    git fetch origin (güncellemeler indirildi)
    git diff origin (farklılıklar incelendi)
    git branch -a (fetch ile gelen bütün brancleri gösterir.)
    git merge master (projeye eklenir)
  • git Fetch komutunda local branche merge etme işlemini kullanıcı yapmak zorundadır.
  • Pull komutunda yukarıdaki işlemler otomatik gerçekleşir.
    git pull

gitignore

  • Git tarafından takip edilmesini istemediğimiz dosyalar gitignore içine yazılır.
    cat >> .gitignore
    veritabanı.txt
    .xlsx
    Ctrl+C
  • add ve commit işlemi yapılır.
  • push işlemi yapılır.
  • gitignore dosyasını düzenlemek için ;
    .notepad .gitignore

Git Branch

  • Localdeki branchleri görmek için ;
    git branch
  • Remote branchleri görmek için ;
    git branch --all
  • Yeni branch oluşturmak için ;
    git branch newBranch
  • Branch oluşturup gitmek için ;
    git branch -b newBranch
  • Branchler arası geçiş için ;
    git checkout newBranch
  • İki branch arasındaki farklılıkları görmek için ;
    git diff master newBranch
  • İki branchi birleştirmek için ;
    git merge newBranch
  • Branch'i silmek için ;
    git branch -d | -D newBranch-2
  • Remote'dan branch silmek için ;
    git branch -dr newBranch
  • Yukarıdaki komut sadece localdeki remote'u siler Remote da geçeerli olmak için;
    git push origin:newBranch

Merge

  • İki branchi birleştirmek için ;
    git merge newBranch
  • Merge işlemini geri almak için ;
    git merge --abort
  • Merge alternativi ;
    git rebase branchB