16 Temmuz 2016 Cumartesi

GİT VERSİYON KONTROL SİSTEMİ

GİT GLOBAL AYARLAR
//sisteme kendimizi işledik
git config --global  user.name "Ramazan Aras"
git config --global user.email "ramazanaras.ra@gmail.com"
git config --global user.name  
git config --global user.email
----------------
boş bir veritabanı oluşturmak için(depo)
git init
------------------
cd ~/Desktop/     cd komutu klasör değiştirir.change director(yolu değiştirir)
ls                masaüstünde birşey olup olmadığını listeler
mkdir dersler     (dersler adında klasör oluşturur masaüstüne-make dir)
cd dersler         (derslerin içindeyiz)
----------------
 gizli klasörleri görmek için(.git klasörünü gösterir)
ls -a
--------------
touch index.html   ( index.html dosya oluşturur)
-------
git status      (dosyaların durumunu görürüz.)untracked takip edilmemiş dosya olup olmadığını yada commit edilip edilmediğini görürüz
git add index.html   (dersek ozaman commite hazır olur yani takip edilmiş olur.)(commit edilmeye hazır hale gelir)
------------------
git commit -m "Anasayfanın iskeleti oluştu"       (takip edilen commite hazır dosyaları veritabanına ekledik(commit ettik))

git commit -m "başlık değiştirildi"   
------------------
touch .gitignore   (proje dahil etmicemiz dosyalar için bir gitignore dosyası oluşturduk)

gitignore dosyasının içi
deneme*   (deneme ile başlayan dosyaları dahil etme)
.*          (. ile başlayan dosyaları dahil etme)
---------------------------------
clear ekranı silmek için
----------------------
rm  9.js  (9.js silmek için klasörden siler)// unix dosya silme komutu
git rm 9.js (buda tamamen veritabanından ve klasörden silmek için)
-----------
mv ./0.js  ./dene0.js   (dosyanın ismini değiştirdik 0.js'ı dene0 yaptık)
-----------------
git log   (geçmişte yaptığımız commitleri görmek için )
git log --pretty=oneline (geçmişte yaptığımız commitleri görmek için  tek satır olarak)
git log  -n 2 --pretty=oneline (geçmişte yaptığımız commitleri görmek için  tek satır olarak son iki içeriği aldık)
git log --grep=dosya (içinde dosya kelimesi geçen commit başlıklarını aldık)
git log --pretty=oneline --grep=dosya(içinde dosya kelimesi geçen commit başlıklarını aldık tek satır olarak son iki içeriği aldık)

-------------
başlangıçta master branchındayız.
git branch  (branchların listesini görmek için)
git branch  ilk (ilk adında yeni bir branch oluşturduk yani master branchına ilk diye bir branch daha atadık.)
git checkout ilk (ilk branchına geçiş yaptık)
git branch ikinci (eğer ilk branchtaysak bu branchtan bir branch oluşuyor ve adı ikinci oluyor.)
-------------
vim yenihtml (html dosyasına bişeyler yazmak için)
cat yenihtml(dosyanın içeriğini öğrenmek için kullanıyoruz)
--------------------
git rm merhaba.js -f (commit edilmemiş dosyayı(commite hazır halde olan) silmek için)
---------------------
git stash (verileri bulutta gösterir(tutar) mantığı )
git stash pop (değişiklikleri geri alır mantığı(buluttan indirir.))
-----------------------
git checkout index.html (commit edilmiş bir dosya üzerinde yaptığımız değişiklikleri geri alma (değişiklikleri siliyoruz ilk haline getiriyoruz.))
git branch -D ilkden (ilkden branchını sileriz.(merge edilmemiş branchlar için kullanırız.))
git branch -d uyarı (ana branche merge edilmiş branchı siler.)
git branch -m masterdann master(masterdann branchının ismini master yap)

----------------
git merge uyarı (master branchındayken uyarı branchından oluşturduğumuz branchtaki özellikleri al)(branchları ana branch ile birleştirmek-merge etmek)

-----------------
Commit edilmiş loglari geri almak(hatalı commitleri düzeltmek)
---------soft---------
RAMAZAN@TOSHIBA MINGW64 ~/Desktop/v2 (master)
$ git log --pretty=oneline
deef81fd3363ab105278c73278c8359a5567d861 uyarı balonu taslak beta sürüm eklendi
50f7c2fb0e7310acce4b86cf87ed3035de3332f4 dosya yeniden adlandırıldı
153a91181d8dcf394b1c25e9182358deff989a70 sadasd
05a1874b8d7ba96c4a9fc9d304e8b3e803fcdd3b denemee dosyalarınıda sildik
bff58992df4c7e0aca8ee24278cff0724d5854b6 deney dosyaları silindi
0dddfa713b0a8d43ccfad63003cda580e8c61874 v2nin temel dosyaları kopyalandı

RAMAZAN@TOSHIBA MINGW64 ~/Desktop/v2 (master)
$ git reset --soft 50f7c2fb0e7310acce4b86cf87ed3035de3332f4   (uyarı balonu taslak committini sildik ama aşağıdaki statusde görüldüğü gibi değişiklikler hala duruyor(COMMİT ALANINDA ŞUAN(commit için hazır) eğerki soft yerine mixed yazsaydık commit alanındanda çıkma-ış olurdu(commite hazır değil olurdu)) sadece veritabanından sildik.)

RAMAZAN@TOSHIBA MINGW64 ~/Desktop/v2 (master)
$ git log --pretty=oneline
50f7c2fb0e7310acce4b86cf87ed3035de3332f4 dosya yeniden adlandırıldı
153a91181d8dcf394b1c25e9182358deff989a70 sadasd
05a1874b8d7ba96c4a9fc9d304e8b3e803fcdd3b denemee dosyalarınıda sildik
bff58992df4c7e0aca8ee24278cff0724d5854b6 deney dosyaları silindi
0dddfa713b0a8d43ccfad63003cda580e8c61874 v2nin temel dosyaları kopyalandı


RAMAZAN@TOSHIBA MINGW64 ~/Desktop/v2 (master)
$ git status
On branch master
Changes to be committed:                   
  (use "git reset HEAD <file>..." to unstage)

        modified:   dene0.js
        modified:   index.html



---------mixed---------
RAMAZAN@TOSHIBA MINGW64 ~/Desktop/v2 (master)
$ git log --pretty=oneline
c95ec902626b6dc4ae8093a12a4a2969ec4fab00 yeni özellik eklendi
50f7c2fb0e7310acce4b86cf87ed3035de3332f4 dosya yeniden adlandırıldı
153a91181d8dcf394b1c25e9182358deff989a70 sadasd
05a1874b8d7ba96c4a9fc9d304e8b3e803fcdd3b denemee dosyalarınıda sildik
bff58992df4c7e0aca8ee24278cff0724d5854b6 deney dosyaları silindi
0dddfa713b0a8d43ccfad63003cda580e8c61874 v2nin temel dosyaları kopyalandı

RAMAZAN@TOSHIBA MINGW64 ~/Desktop/v2 (master)
$ git reset --mixed 50f7c2fb0e7310acce4b86cf87ed3035de3332f4
Unstaged changes after reset:
M       dene0.js
M       index.html

RAMAZAN@TOSHIBA MINGW64 ~/Desktop/v2 (master)
$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   dene0.js
        modified:   index.html

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



HARD KOMUTU(kullanımı tehlikeli)

git reset --hard 50f7c2fb0e7310acce4b86cf87ed3035de3332f4 (dosya yeniden adlandırıldı commitine geri döneriz.(önceden commit edilmiş dosyalarda gider.(silinir)))
git push --force (buda commiti github hesabındanda siler bunu yapmazsak github hesabında commit hala gözükür)
------------------------
uzak bir repo(repository) eklemek 
git remote add origin https://github.com/fearles123/CANVAS-DERSLERI.git
git push -u origin master 
---------------------
UZAK BİR REPOYU KLONLAMAK
clone https://github.com/NikosEfthias/easyAjax.git 

--------------


Git Kullanımı

Depoya Dosya Ekleme

Projemize ilk commit'i yapalım:

Öncelikle depoya eklemek istediğimiz veya daha önce eklenmiş,değişiklik yapılmış dosyayı index denilen git geçici alanına eklemeliyiz.
git add dosya_ismi

Şimdi bu dosyanın geçici alandan alınıp yerel depoya gönderilebilmesi için commit edilmesi gerekli.
git commit -m"commitin içeriğini anlatan mesajımız"

Böylece dosyamız yerel depoya atıldı.Ancak henüz uzak depoya ulaşmadı.Uzak depoya atabilmemiz için ise:
git push origin bulunduğumuz_branch_dalı

Bu komut ile beraber yaptığımız değişiklikler uzak depoya gönderilmiş oldu.
Bu şekilde proje arkadaşlarımızın yaptığı değişiklikleri kendi yerl depomuza çekmek için ise:
git pull

Hiç yorum yok:

Yorum Gönder