diff --git a/git - github.txt b/git - github.txt new file mode 100644 index 0000000..e4a8819 --- /dev/null +++ b/git - github.txt @@ -0,0 +1,233 @@ +http://vcs.atspace.co.uk/2012/11/05/which-repository-is-more-compact-git-or-svn/ +https://hanakamer.com/bu-yaz%C4%B1da-git-versiyon-kontrol-sisteminin-yap%C4%B1-ta%C5%9Flar%C4%B1ndan-ve-temel-%C3%A7al%C4%B1%C5%9Fma-prensibinden-bahsedece-b3be93158541 + +git nedir? + +Git Nedir? +Git bir versiyon kontrol sistemidir. Yapacağınız projelerin adım adım versiyonlarını alarak daha sonra ihtiyaç halinde, aldığınız bu versiyonlara geri dönebilirsiniz. + +Git yazılımı, Linux çekirdiğini oluşturan Linus Torvalds tarafından yazılmıştır. Açık kaynak kodlu özgür yazılım ürünüdür. Herhangi bir ücret ödemeden kullanabilirsiniz. + + +neden ihtiyaç duyarız? +-mevcut projeye birşey eklemek yada çıkarmak için projenin kopyası üzerinden devam edilir. proje geliştirme bu şekilde ilerler. Git buradaki karışıklığı profesyonel şekilde düzenlememizi sağlar. + +-- +bir proje dizininde eksi ve yeni versiyınlar arasındaki geçiş daha kolay yapılır. + + + + + + + + + + + + + + + + +-------------------------------------------------------------- + +2.KURULUMU +git download (git-scm.com) + +git gui, git bash, git cmd + +linux için: +-sudo apt-get install git +-git --version (kurulumun gerçekleşip gerçekleşmediğine bakarız) + +3.GIT YAPILANDIRMASI + +git'te kullanıcı tanımlanmalıdır. + +git config --global user.name "siyarsimsek" +git config --global user.email "siyarsimsek@gmail.com" +git config --global user.name --> kullanıcıyı kontrol edebiliriz. +git config --global user.email --> email'i kontrol edebiliriz. + + +4.GIT PROJESI OLUSTURMA +işe yarar komutlar +pwd, ls, cd + + +masaüstünde proje_dizini açıldı. +"git init"; +bu komut ile proje_dizini bir git projesi olur. ls -al ile görüntülenir.(gizli dosya formatındalar) +bu dosyalar projenin takibi ve kayıtı için gereklidir. + +-------------- +6.COMMIT & LOG + +projeleri repository'e ekleme soyaları. + +~/Desktop +mkdir myproject +mv 26.09.2017 ~/Desktop/myproject +cd myproject + +-git init +-git add . --> mevcutu git repository'nin geçici alanına taşır +-git commit -m "ilk commit" -> alınan versiyonun niteliğini açıklamalı + +-git log --> alınan tüm versiyonları listeler commit'ler dahil kullanıcı vs + +-*-*- +git status --> projede değişiklikler olduğunda bunları gösterir. çalışma dizini ile repository arasında fark yoksa herhagi birşey göstemersi beklenmez. +(AYRICA; git status yazıldığında yukarıda ne yapabileceğimize ilişikin uyarılar da olur.) +*burada hesap.py dosyasını myproject dizininde oluşturduğumuzda; commit edilecek dosya olmadığını, geçiş bölgesine eklenecek dosya olduğunu belirtir. + +-git add hesap.py (git add . demememizin sebebi tüm dosyaları bir daha yükleme ihtiyacı olamamasıdır. +-git log ile tekrar bakılabilir. + + +*--*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* +İŞ AKIŞI + +3 bölümden oluşur + +working directory - staging area - git repository +çalışma dizini - geçiş bölgesi - git deposu + ----- add ------> ----- commit ----> + +iki dosya oluşturup biri geçiş diğeri de repository'e gönderildiğinde ne olur ona bakabiliriz. + + + +*---*--*--*-*-**---**--*-**--*-*-* + +değişiklikler olduğunda; +git status ile bunu görebiliriz. + +-"git diff" ile değişiklikler "+" ve yeşil'le belirtilir. +bu commit edilirse değişiklikler kayıt edilir. + +--dosyalarda birşeyler silindiğinde +(git diff x -> x ile ilgili değişikliklerdir.) + + +*-*- +git diff; working directory ile staging area arasındaki farkları verir. + +git diff --staged; staging area ile repository arasındaki farkalrı verir. + +---------------------- +dosya silme; +manuel silme +git komutu ile silme + +-manuel silindikten sonra add/rm ile staged area'ya iletebilirsiniz. + +-git rm carpma.py +-git commit -m "sildik" + +(bash üzerinden gidilirse yukarıdaki iki komut yeterli. dizine gidip elle silmeye gerek yoktur.) + +şimdi içinde dosyalar olan klasörü silelim +mkdir sil +touch 1.py 2.txt 3.txt +önce git deposuna göndermek gerek -> git add . +git commit -m "klasor oldu" + +şimdi silelim + +git rm -r sil/ +git commit -m "dosya silindi" + +---------------------------------------- + +dosya isimlendirme ve taşıma; +git mv 2.txt iki.txt; direk git üzerinde isim değiştiririz ekstradan git add . ihtiyac yok. +(ctr+shift+c/ctrl+shift+v) + +*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* +değişiklikleri geri alma + +çalışma dizininde olursak; + +projede bir dosya içeriği değişti diyelim. +git checkout -- index ile bakarız. +dosyayı silsek dahi aynı komut ile geri getiririz. + +*--*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* +staged area'ya gönderilen dosyayı getirme; +a.py üzerinde değişklik yaptık; +git add a.py dedik +şu anda değişiklik yapılan a.py staged area'ya geldi. +burada - git reset HEAD a.py dersek dizine gelir +bir üst taraftaki gibi git checkout -- a.py dersek +herşey eski haline döner. + +*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- +versiyon değiştirme + +v1 > v2 > v3 + +v3'ten v2'ye geçişte v2'nin kopyası alınmış olur. + + +git checkout (gidilmesi istenilen versiyon hash'i) -- . +(. -> tüm dosyların istenilen versiyondakş haline dönüş istenir.) +kodun ilk 7 hanesi de olur. + +--------------------------------------------------------------github +-------------------------------------------------------------- + +git yazılımı ile entegre olmuş bir depolama alanıdır. gitlab/ + +git bağlantısını o dizine eklemek gerek; +>github +git remote add bağlantınıntakmaadı https://github.com/siyarsimsek/github.git +git remote ---> bağlantının eklenip eklenmediğine bakar +git push -u bağlantınıntakmaadı master + +-*-**- +.gitignore -> git tarafından takip edilmesini istemediğiniz dosyalarınızı saklamak içindir. git'e gönderip veritabanını görüntülemez. +touch verii +cat >> .gitignore +(hangi dosyaları saklamak istersek onları yazarız) +git status yazılırsa verii dosyası gözükmez. + +önce gitignore'e yazın dosyanızı + +*-*-* +mkdir belge +touch dosya{1..5}.html + + +*--***-*-**--**-*-*- +branch +master'ın kopyalanmasıdır aslında + +git branch yenidal +git branch --all +git checkout yenidal --> yenidal'a geçtik +git checkout master yenidal --> aradaki farkları gösterir +git checkout master -> master'a geçtik +git merge yenidal --> yenidal ile birleşti + + + + + + + + + + + + + + + + + + + + + diff --git "a/git yap\304\261s\304\261.png" "b/git yap\304\261s\304\261.png" new file mode 100644 index 0000000..0b7ccf6 Binary files /dev/null and "b/git yap\304\261s\304\261.png" differ diff --git a/git.pptx b/git.pptx new file mode 100644 index 0000000..7e63c19 Binary files /dev/null and b/git.pptx differ