git-github-cheatsheet

GIT

  • Git'e kendimizi tanıtmak.
$ git config --global user.name "Mustafa Dikyar"
$ git config --global user.email "iammustafadikyar@gmail.com"
  • Yapılandırmamızı kontrol etmek.
$ git config --global user.name
$ git config --global user.email
  • Bulunduğumuz dizinin yolu almak.
$ pwd
  • Bulunduğumuz dizin içerisindeki dosyaları listelemek.
$ ls
  • Farklı bir dizine (Change Directory) geçmek.
$ cd C:
  • Bir önceki dizine geçmek.
$ cd ..
  • Terminali temizlemek (Kısayol : Ctrl + L).
$ clear
  • Çalışma dizini (Working Directory) içerisine git projesi oluşturmak.
$ cd git
$ git init
  • Çalışma dizini içerisindeki proje dosyalarını listelemek (dizin içerisinde gizli bir .git dosyası oluşur.).
$ ls -a
  • Çalışma dizini içerisindeki dosyaları geçiş bölgesine (Staging Area) taşımak.
  • (.) ifadesi dizin içerisindeki tüm dosyaları ifade eder.
$ git add .
  • git deposu (repository) üzerinde bir kopya oluşturmak (commit).
$ git commit -m "first commit"
  • Log kayıtlarını görmek.
$ git log
  • Proje üzerindeki değişiklikleri görmek.
  • Eğer bir değişiklik yapıldıysa kırmızı bir font ile belirtilmiş 'modified:' ön ekiyle geçiş bölgesine taşınabilecek dosyaların bir listesini sunar.
$ git status
  • Yapılan değişiklikleri önce geçiş alanına sonra da bir kopyasını git üzerine taşımak.
$ git add start.cs
$ git commit -m "Has been a changed."
  • Yapılan değişiklikleri incelemek.
  • Eklenen satırlar (+) ve yeşil bir font ile çıkarılan satırlar (-) ve kırmızı bir font ile satır satır listelenir.
$ git diff

** Silme, isim değiştirme, dizin değişikliği gibi işlemler komut satırı ile yapılabildiği gibi manuel olarak ta yapılabilir.

  • Dosyaları silmek.
  • Manuel olarak silip sonrasında commit yaparak ta silme işlemi yapılabilir.
$ git rm start.dart
$ git commit -m "start.dart is deleted."
  • Klasör silmek
$ git rm -r deleted/
$ git commit -m "'deleted' folder is deleted."
  • Dosyayı yeniden adlandırmak.
$ git mv start.cs updated.dart
$ git commit -m "Name change 'start.cs' -> 'updated.dart'"
  • Dosyayı farklı bir dizine taşımak
$ git mv updated.dart folder-to-move/
$ git commit -m "updated.dart has been moved."
  • Çalışma alanında yapılan işlemleri geri almak.
  • Birden fazla dosya üzerinde işlem yapılabilir.
$ git checkout -- updated.dart
  • Geçiş bölgesinde yapılan işlemleri geri almak.
$ git restore --staged folder-to-move/updated.dart
$ git checkout -- folder-to-move/updated.dart
  • Versiyon değiştirmek
  • log kayıtlarını getirerek ilgili id'ye erişilebilir. (ee09f5bfd7d76e2235f4e3bbc79c6f5d1b676a2e)
$ git log
$ git checkout ee09f5bfd7d76e2235f4e3bbc79c6f5d1b676a2e -- .
$ git commit -m "All changes have been reverted."

GITHUB

  • github üzerinde oluşturulan bir repo ile bağlantı kurmak.
$ git remote add myRepo https://github.com/mustafadikyar/my-repo-name.git
  • github'a proje yollamak.
  • -u komutu tüm dosyaları yollaması gerektiğini söyler.
  • master ise hangi branch olacağını söyler.
$ git push -u myRepo master

İlk göderimde kullanıcı adı ve şifre ister.

  • github'a dosyaları gönderirken git tarafından dışarıda bırakılmasını istediğimiz dosyalar için .gitignore dosyası içerine kaydederiz.

  • github'a dosyalar yollanırken belirtilen dosyalar görmezden gelinir.

  • .gitignore dosyası oluşturmak.

$ cat >> .gitignore
test.cs

.gitignore dosyasını oluşturmasını söylüyoruz. Sonrasında da hangi dosyaların görmezden gelineceği bilgisini ister. (bkz. test.cs) İlgili bilgileri yazdıktantan sonra ctrl + c combinasyonuyla işlem bitirilir.

Bu işlem sonrasında console $git status komutunu çalıştırdığımız zaman ilgili dosyanın gelen listeye dahil olmadığını göreceksiniz.

private-folder/*
!private-folder/test.dart

private-folder klasörü içerisindeki tüm dosyaları görmezden gel ama private-folder/test.dart dosyasını commit'e dahil et diyoruz.

  • Yeni bir branch oluşturmak.
$ git branch new-branch-name
  • Farklı branch'e geçmek.
$ git checkout new-branch-name
  • Local branch'ları listelemek.
$ git branch
  • Tüm branch'ları listelemek
$ git branch --all

Yaptığımız işlemleri web sitesi üzerinden veya uygulamalar üzerinden de yapabilmekteyiz.

  • new-branch-name branch'ına dosya yüklemek.
$ git push -u bashDemo new-branch-name
  • İki branch'ı birleştirmek(merge).

önce aradaki farklılıkları görelim.

$ git diff master new-branch-name

sonra da birleştirelim.

$ git checkout master
$ git merge new-branch-name

işlemleri sonrasında değişikliklerimizi github'a gönderdiğimiz(push) zaman master branch'ında var olmayan sadece new-branch-name isimli branch'ta bulunan dosyaların da master'a eklendiğini göreceksiniz.

  • Local'e dosyaları çekmek.
$ git pull