git notlari

12 Ağustos 2017 "git egitim notlari - kisa notlar hatirlama amaci ile"

----
ep 01-02:
git init < - ilk kez gri kurmak icin bir klasore.
git add dosya_ismi <- bir dosyanin resmini cekmek icin. suan kaydetmiyoruz sadece o anlik resmini cekiyoruz gibi dusun.
git status <- projenin en son halinigormek icin kullanilir. changes to be committed da STAGE durumundaki dosyalar var. commit edince ne gonderecegini burada gorursun. ayrica hangi branch da oldugunu da gosterir.
git commit <- doysa ile isimiz bitti diyelim, ondan sonra son halini version kontrol sistemine kaydetmek gibi dusun. backup almak icin yaptigimizi dusun. bir mesaj ekrani cikiyor. burada mesajimizi yaziyoruz. bunun yerine git commit -m 'mesj' komutu ile pencere acilmadan da isimizi hallederiz.
git log <- bununla da loglari inceliyoruz.

git add ve git commit arasindaki farki tekrar yazayim. git add ile her bi dosyayi ekledigimizde veya farkli zamanlarda yeni dosyalari ekledigimizde sanki bu dosyalari bir kamyona yukluyoruz gibi dusun. dosyalar DEPOYA saklanmak icin kamyona bindiriliyormus gibi dusun. Surekli olarak kamyona yeni dosyalar yukleyebiliriz add komutu ile. Taaaaa ki en sonunda tamam kamyonu depoya gonderelim diyene kadar. DEPOya saklanmak uzere gondermek icinde COMMIT ediyoruz. Ancak oCOMMIT ettigimizde dosyalar saklanmak icin DEPOYA GITIYOR ! Bu sekilde dusunebilirsin.

dosyayi add ettikten sonra modifiye edersek. yeniden add demek zorundayiz. git diff ile de aradaki farklari anlayabiliriz. - eskiden + yeni hali ile satir satir gosterecektir.

eger yeniden git add etmeden COMMIT edersek DOSYANIN ilk ilk ADD ettigimiz halini gonderecektir. Cunku git add dedigimizde dosyanin o andaki resmini cekiyor ve sakliyor idi. git status dedigimizde bunu goruruz (dosya modfiye edilmis uyarisi gorunur) Eger dosyanin son halini gondermek istiyorsak mutlaka yeniden ADD dememiz gerekiyor. Ancak ondan sonra commit ederek son halini gonderebiliriz.

----
ep 03:

diyelim ki bi dosyayi hatali kod yazdik veya typo hatasi yaptik ve bunu commit ettik. bunu nasil geri alacagiz?

git reset --hard UID : dosyanlarin eski halini de orjinal haline ceviriyor.
git reset --soft UID : reset the commit ama dosyanin yeni duruyor. sadece commit i siliyormus gibi dusun.

UID degerleirni git log ile alabilirsin. HARD reset asla global repoya atilmis ile yapma. iyi bir pratik degil derler. o yuzde global olarak bir repoya gondermemis isek duzeltmeleri SOFT ile yapalim. bir onceki commit in uid degerine soft reset yaptigimizda dosyalarin yeni hali duracak ama gonderdigimiz commit silinmis olacak.

git log dediginde de sildigin commitler yok olmus oldugunu goreceksin.

reset ettikten sonra dosyalardaki degisikligi yapip yeniden ADD etmek lazim. ADD yaptiktan sonra bir commit gondermek yerine eski commit uzerine yaz diyebiliriz. amacimiz show log diyince yaptigimiz duzeltmenin gereksiz yere log da gorunmemesi idi. bunun icin git commit --amend yazmamiz yeterli.

UYARI eger YENI DOSYALAR varsa bunlar siliniyor. HARD reset atinca! yani yeni dosyalarin varsa bir onceki committe o zaman SOFT reset yap. HARD reset tehlikeli gibi duruyor.

Bir UID deki degisiklikleri gormek icin git SHOW komutu var. git show 07a38203c7f117b4fa3c21d9c6a93868b791a74c yazarak (UID degerini git LOG yazarak alabilirsin) o commit de ne degisitirilmis gorebilirsin.

---
ep 04:
install laravel
----
ep 05: branches

git branch veya detali olarak branchleri listelemek icin git branch -v

git checkout -b 'yeni-branch'
git checkout master
git merge 'yeni-branch'

onemli olan yeni bir branchda dosya eklenmis ise, master veya baska bir yere gecmeden once ADD ile eklenmeli ve COMMIT ile gonderilmeli. YOKSA diger BRANCHlarda bu dosyanin varligini goruyor. baska bir branchde anlik gorunmesini bitirmek icin yeni olusan branche gecip dosyayi COMMIT etmemiz gerek. o zaman master branchde falan bu yeni dosya gorunmuyor. kisaca commit etmeden baska branche gecme. gerekiyorsa ilerde soft reset yapar logdan silersin brachi merge etmeden once.
----

ep 06: conflict

git merge dediginde otomatik merge islemi basarisiz oldu gibi bir mesaj aliyorsan. git status ile bak hangi dosyalarda 'both modified' seklinde bir uyari veriyorsa onlari git diff ile incele. sonra merge etmek istedigin branchede dosyayi editor ile ac ve gosterilen yerleri duzelt. sonra yeniden dosyayi add edip commit et. merge eden yerleri bullup dosyayi son haline getirerek conflictleri cozebiliyorsun yani. cakisan yerleri gormek icin git diff yazarak bakabilirsin.

----

ep 07: aliases

git config --global alias.s status <- git komutunu alias yaptik artik git s yazinca git status calisacak
ayarlar kullanicinin home directorysinde duruyor, vim ~/.gitconfig yazarak incelenebilir (hic alias yapilmamis ise boyle bi dosya yoktur, ilk basta birseyleri alias yap) bu dosyayi direk olarak editleyerek de alias eklenebilir. veya ilgili satirlari silerek aliaslar silinebilir.

git config --global -unset alias.s <- boyle manuel de silebiliriz.

----
ep 08 : stash
git stash <- bu komut ile o andaki dosyalari stahse atiyoruz.
git stash list <- tum shash yaptiklarimiz gorebiliriz. dosyalari degil sadece stash yaparak kaydettiklerimizi
git stash pop ve git stash apply <- stashe atilanlari geri cagiriyoruz. pop yazinca stash listden de siliyor.
git stash drop <- bunu yazincada stash lisri siliyor.

eger komutlarin sonuna stash id yazmazsak en son stash icin gecerli islemler. yok yazarsak sadece o yazdigimiz stash id icin islem yapiyor.
stash id degeri list yapinca 2 noktadan onceki string. su sekilde mesela: stash@{0}

stash yaptigimiz branchi silsek bile bir baska branchde git stash appyl falan yaapabiliriz. yyada yeni bir bbracnh acip ona stash edebiliriz.
git stash branch deneme <-- yeni bir branch acar deneme adinda ve orada stashi appy eder.

----

ep 09: github

YENI KLSOR / PROJE ICIN:
echo "# deneme" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/fatih1976/deneme.git
git push -u origin master
…or push an existing repository from the command line

VAR OLAN KLASOR ICIN:
git remote add origin https://github.com/fatih1976/deneme.git
git push -u origin master

-----

ep 10: rebase

rebase icin once yeni branch olustur sonra masterda bir degisiklik yap sonra yeni branchde degisiklik yap ve commit et.
daha sonra mastera gec ve merge et. grafik ile bakinca mergeler falan gorunuyor yol ayrimi yapip. bunu engellemek icin
yeni branchde git rebase master yaziyorsun ve tum commitleri birlestirip tek bir commitmis gibi mastera rebase ediyor.
daha sonra masterda merge newbranch yap boylece commit history temiz kaliyor.

alias.graph log --oneline --graph
alias.alias config --get-regexp ^alias\.

-----

ep 11: interactive rebasing

git rebase -i master
git reflog

-----

git remote add origin git@github.com:myname/oldrep.git
yazdgınızda fatal: remote origin already exists hatası alıyorsanız, dert etmeyin. daha önce "origin" kelimesi ile bir uzak repository oluşturdugunuz için bu hatayı alıyorsuunz. "origin" kelimesi aslında sadece "uzak sunucuya" verdiginiz bir isim. yani uzakta ki bir repoya veya farklı bir başka repoya dosyalarınızı göndermek istiyorsanız origin yerine farklı bir isim ile gönderebilirsiniz.

mesela uzaktakisunucu şeklinde yazabilirsiniz yeni bir uzak repoyu:
git remote add uzaktakisunucu git@github.com:myname/oldrep.git
git remote add cokuzaksunucu git@github.com:myname/oldrep.git

http://www.kernel.org/pub/software/scm/git/docs/git-remote.html

eger illa origin isminig eri istiyorsanız ve artık eskiden origin adı vedrdiginiz repoyu kullanmak istemiyorsanız su komut ile silebilirsiniz:
git remote rm origin
karşıdaki dosyaları silmek için ise:
git remote rm upstream

Yazar Hakkında
FatihYILMAZ "Duyurmaya değer bir şey yapmıyor, ya da yaptıkları çok gizli, duyurmak istemiyor." Yazara Ait Diğer Yazılar
İlginizi Çekebilecek Diğer Yazılar
Bedava Versiyon Kontrol Sistemleri - Subversion veya GitKendi küçük projeleriniz için ücretsiz versiyon kontrol hizmeti veren siteleri derleyip toparladık.
Yorumlar Yorum Ekle
Yorum yazabilmek için, Yeni Kayıt Oluşturun veya Site Girişi Yapın




Tüm Liste »

Son Gönderilen 20 Yazı

laravel - custom monolog git notlari ajax kod örnegi - finans servisi tooltip için Borsa notları - Bireysel Yatırımcı Psikolojisi borsa notları - aselsan cloudflare ve api ile otomatik dns kaydi guncelleme mRemoteNG config dosyası confCons.xml yerini değiştirmek için macos memcached kurmak ve php ile memcache baglantisi saglamak gram altın değeri euro cinsinden nasıl hesaplanır? dolar ve türk lirası ol laravel 5 - config ayarları olmadan birden çok veritabanına bağlanmak Yunan Krizi Son Durum - Maliye Bakanlari Anlaşamadi - Liderler toplantisi iptal 18.06.2014 - 19.06.2015: borsa istanbul, Foreks dolar ve euro için takip notlar nodejs kurulum notları Circle Spike Run - Yeni ücretsiz Android Oyunu opel corsa için bazı kullanışlı ayarlar Tap Cowboy - Ücretsiz Android Mobil Telefon Oyunu - Kovboy Oyunu sevenlere mac os kullanirken ntfs dosya sistemine yazmak TP-LINK modemde port açmak - tum adsl modemlerde gecerli yontem Bolt CMS (içerik yönetim sistemi) nedir,asıl kurulur? Detaylarla anlatıyorum Çalışma günleri 5 günden 4 güne düşürülecek.

Popüler Yazılar

CNBC-E 'de Twitter Çılgınlığına Katıldı Legend and Killers'in Detayları Belli Oldu Rise of the Godslayer oyuncuları çağırıyor David Cage'in Chronicles Üzüntüsü Call of Duty: Black Ops dan yeni ekran görüntüleri IBM'in Tercihi Firefox "Her Evde 3D TV Olacak" Mafia 2'nin İlk Yapımcı Günlüğü Ortaya Çıktı FIFA Manager 11 Duyuruldu "Blu-ray Kaybedecek" Sin City 2 Baştan Yazılıyor Civilization V Collector's Edition paketi Ölü doğan cep telefonları Crysis 2 Collector's Edition Dragon Age 2 den yeni ekran görüntüleri

En Yeni Videolar

Çin malı cep telefonlarına IMEI kopyalama - IMEI Yedekleme Arch Enemy İstanbulda - 27 Ocak 2012 Karanlık Saat (The Darkest Hour) VİZYONDA! 2012 Eurovision Temsilcimiz CAN BONOMO! Film önerisi: Duplicity - Sahtekarlar Türkçe Adsense Resmi Youtube Kanalı açıldı. Nasıl iPhone kullanarak, windows laptop internete bağlanır? En Populer iPhone Oyunları: Fruit Ninja, Plants vs Zombies, Angry Birds - I ABIT 'den Kol Saati ve Cep Telefonu Bir Arada. RailGun silahları gerçek oluyor. Google Earth 6 duyuruldu, artık ağaçlar bile 3 boyutlu. iPhone ve İnternet Adres Sorunu Crysis 2'ye Yeni Tarih FIFA 11 için Yeni Tanıtım Videosu Yayınlandı Street Fighter ve Tekken Sonunda Bir Araya Geliyor

En Son Yorumlar

» GokhanYILMAZ@22:21: "hey gidi"
» FatihYILMAZ@12:35: "steve jobs öldü belki ama mirası yükselmeye devam ediyor. "
» paranoiahasu@19:19: "Eklenti seçenekleri biraz daha fazla olsa, kullanıcılarının bü..."
» Silphatos@19:02: "güzel olmuş, severim richard abimi. artık şatoya kat çeker para..."
» paranoiahasu@13:28: "beklentilerin gerisinde olan getiriler şirketler için zarar olmuş..."
» CeUn@11:42: "hem "kar" yapıp hem zarar etmek nasıl oluyor acaba.."
» paranoiahasu@16:25: "Core i7 serisinin ısınma sorununa da bir çare bulurlar umarım. S..."
» FatihYILMAZ@14:06: "BP battıkca batıyor be. bu nedir şimdi yani."
» paranoiahasu@02:25: "güçlü işlemci ve ram seçeneği ile bu tür telefonlar teknoloji..."
» paranoiahasu@02:24: "ilginç bir durum aslında. özellikle netbook satışlarının tava..."
» MrHades@12:34: "güzel olacağa benziyor."
» OzanFIRAT@11:49: "yarısı DLC olarak sunulur zaten hehe "
» OzanFIRAT@11:48: "benim 3.5 kiloluk darbeye dayanıksız, hatta taşımaya dayanaksız..."
» paranoiahasu@18:47: "Listede de yok yok maşallah =)"
» paranoiahasu@13:10: "Şu an betayı x1900 gt ekran kartı (256 bit) ve 3 gb ram ile oynuy..."
» FatihYILMAZ@18:02: "apple delisi kuyuya bir taş attı, artık tutabilene aşkolsun. tel..."
» paranoiahasu@13:59: "wave de çok iyi satıyormuş"
» OzanFIRAT@11:36: "herşeyiyle bana SWG'yi hatırlattı, sanırım kasten gelişimleri ..."
» OzanFIRAT@22:33: "heh bende ps3'te infamous oynarken aynı şeyleri hissediyordum :D "
» paranoiahasu@23:21: "ön sipariş linki aradım yazıda bulamadım .."
» paranoiahasu@19:15: "bu resmi uzunca bir süre duvar kağıdı olarak kullanmıştım =)"
» FatihYILMAZ@11:48: "ehe evde x-box'da bunu oynuyorum. Oyunun kendisini tavsiye ederim, ..."
» paranoiahasu@14:33: "Hemen edinmeli bu albümü =)"
» paranoiahasu@02:16: "İnanılmaz şekilde kredi kartımı kabul etmeyen steam yüzünden ..."
» OzanFIRAT@23:36: "haberi bitirmeyi beklemeden, yazarken sabredemeyip Left 4 Dead 2 ve ..."

Evvel Zaman