Merhaba. Bu yayını aslında kendime not olarak hazırlıyorum ve sizlerle notlarımı paylaşmak üzere yayınlıyorum. :) Yayını öncelikle kendime hatırlatma amaçlı hazırladığım için size göre fazla açıklayıcı olmayabilir. Bu yayını benim ders notlarımı almış gibi okuyabilirsiniz.
2) terminal: select default shell
3) git bash
4) ctrl + "
ÖNEMLİ: Aşağıdaki içeriği Barış Aslan'ın YouTube videolarından kendime (ve tabi bu yazıyı okuyacak herkese) not olarak aldım. Lazım oldukça girer girer bakarız. :)
YouTube'de Barış Aslan'ın Git, GitHub ve GitLab Kullanımı adlı Oynatma Listesi için tıklayın.
. karakteri yerine belli bir dosyanın adını vermek de mümkündür. Sadece bu dosya taşınır.
Örn: git add app.js
Eğer working area'mla git repository'm arasında bir farklılık yoksa bi'şey göstermez. Değişiklik olmadığına dair bilgi verir. Burada verdiği "On branch master", git'in varsayılan olarak oluşturduğu proje dalıdır.
Eğer working area'mla repository'm arasında bir fark varsa projede commit edilecek bir dosya olmadığını ama staging area'ya eklenmesi gerekecek dosyaları kırmızı renkle listeler.
Eğer staging area'ya taşınmış dosyalarımız varsa bunları da commit edilmeye hazır dosyalar olarak yeşil renkle listeler.
Eğer git diff --staged komutunu kullanırsak da staging area ile repository arasındaki farkları gösterir.
Klasör silmek için git rm -r "silinecek klasör/" dersek klasörü ve içindekileri siler. İşlem yine commit edilmeye hazır şekilde tutulur. (buradaki -r parametresini vermezsek içindekileri silemez; uyarı verir.)
Bu işlemden sonra yeniden add ve commit yaparak tam anlamıyla eski versiyona dönmüş oluruz.
Eğer bir değişiklik yapıp da staging area'ya göndermişsem önce bu komutla dosyayı geri çağırıp sonra da git checkout -- "dosya1.js" ile değişikliği geri alabilirim.
Eğer dal oluşturmak istiyorsam: git branch dal1 diyerek dal1 adlı bir dal oluşturabilirim.
github-repository dediğim yer bu bağlantıya verdiğim bir ad. Başka bir ad da verebilirdim.
Sonraki link ise github'dan kopyalayıp aldığım repository'min linki.
-u ile bütün dosyaları göndereceğim
github-repository, bağlantıma verdiğim ad.
master ise projemin gönderileceği dal.
Komuttan sonra kullanıcı adımı ve şifremi soracak. Bunları girince değişikliği GitHub üzerinde görebilirim.
dosya2.js deyip ctrl+c ile çıkalım. Artık .gitignore dosyasının içinde dosya2.js yazıyor.
Artık git, değişiklikleri kontrol ederken .gitignore içinde yazan dosyalara bakmayacaktır. Yani dosya2.js dosyasında ne değişiklik yaptığımı umursamayacaktır. Haliyle GitHub'a da push etmeyecektir. (.gitignore dosyasının kendisi umursanır ve push edilir)
.gitignore dosyam proje klasörümde bulunuyor. Buradan istediğim gibi dosya ve klasör ekleyebilirim. Örneğin .gitignore dosyasının içeriği şöyle olabilir:
dosya2.js
umursanmayacaklar/*
Böylece .gitignore dosyam sayesinde dosya2.js ve umursanmayacaklar klasörü altındakiler umursanmayacaklar.
Visual Studio Code ile Terminal Olarak Bash Kullanmak
1) ctrl + shift + p2) terminal: select default shell
3) git bash
4) ctrl + "
ÖNEMLİ: Aşağıdaki içeriği Barış Aslan'ın YouTube videolarından kendime (ve tabi bu yazıyı okuyacak herkese) not olarak aldım. Lazım oldukça girer girer bakarız. :)
YouTube'de Barış Aslan'ın Git, GitHub ve GitLab Kullanımı adlı Oynatma Listesi için tıklayın.
Git Bash Terminalinde Kullanabileceğim Bazı Komutlar
git config --global user.name "ebykdrms"
Bundan sonra yapacağım projelerde kullanıcı adım ebykdrms olarak görünecek. Böylece, başkalarıyla aynı proje üzerinde çalışıyorsam benim yaptığım değişiklikler diğerlerinden ayrılmış olacak. Daha doğrusu, hangi değişikliği benim yaptığım anlaşılabilecek.git config --global user.email "emrebuyukdurmus@gmail.com"
Üsttekiyle aynı şekilde...git init
Bulunduğum dizini git projesi haline getirir.git add .
Bulunduğum dizindeki (working area) tüm değişiklikleri staging area denen geçiş bölgesine taşır.. karakteri yerine belli bir dosyanın adını vermek de mümkündür. Sadece bu dosya taşınır.
Örn: git add app.js
git commit -m "değişiklikle ilgili açıklama"
Staging area bölgesindeki değişiklikleri repository'e taşır.git log
Yaptığım commit'lerin listesini verir.git status
Yağtığım değişiklikleri gösterir.Eğer working area'mla git repository'm arasında bir farklılık yoksa bi'şey göstermez. Değişiklik olmadığına dair bilgi verir. Burada verdiği "On branch master", git'in varsayılan olarak oluşturduğu proje dalıdır.
Eğer working area'mla repository'm arasında bir fark varsa projede commit edilecek bir dosya olmadığını ama staging area'ya eklenmesi gerekecek dosyaları kırmızı renkle listeler.
Eğer staging area'ya taşınmış dosyalarımız varsa bunları da commit edilmeye hazır dosyalar olarak yeşil renkle listeler.
git diff
Working area ile repository arasında bir değişikli yapıldıysa bu değişiklikleri satır satır gösterir.Eğer git diff --staged komutunu kullanırsak da staging area ile repository arasındaki farkları gösterir.
git diff master dal1
master dalı ile dal1 dalı arasındaki farklılıkları gösterir.git rm "dosya.js"
Working area'mda bulunan dosya.js dosyasını siler ve bu değişikliği staging area'ya taşır. Commit işlemi de yapılırsa dosya repository'den de kalkar.Klasör silmek için git rm -r "silinecek klasör/" dersek klasörü ve içindekileri siler. İşlem yine commit edilmeye hazır şekilde tutulur. (buradaki -r parametresini vermezsek içindekileri silemez; uyarı verir.)
git mv dosya1.js dosya2.js
dosya1.js dosyasının adını dosya2.js olarak değiştirir ve değişikliği staging area'ya aktarır.git checkout -- "dosya1.js"
working area'mda yaptığım (henüz add veya commit etmediğim) değişiklikleri geri alır. Dosya silinmişse geri yüklenir veya yapılmış değişiklik varsa geri alınır. Yani repository'deki dosya1.js dosyası working area'ya alınır.git checkout e0f58b00acbd84d3cb48b3927b9588903e4e6388 -- .
Yaptığım commit'lerden birinin hash kodunu kullandım. -- işaretinden sonra da nokta kullandım. Bu commit'teki tüm dosyaları geri yükle demiş oldum. Önceki bir versiyona dönmek gibi...Bu işlemden sonra yeniden add ve commit yaparak tam anlamıyla eski versiyona dönmüş oluruz.
git checkout dal1
Aktif dalımı master'dan dal1'e taşıdım. Artık yaptığım değişiklikler dal1 içinde geçerli olacak. master dalımdakilerle karışmayacak.git reset HEAD "dosya1.js"
Staging area'da bulunan dosyayı geri çağırır. add komutunun tam tersi gibidir.Eğer bir değişiklik yapıp da staging area'ya göndermişsem önce bu komutla dosyayı geri çağırıp sonra da git checkout -- "dosya1.js" ile değişikliği geri alabilirim.
git branch
Projemdeki dalları listeler ve benim hangi dalda bulunduğumu gösterir.Eğer dal oluşturmak istiyorsam: git branch dal1 diyerek dal1 adlı bir dal oluşturabilirim.
git merge dal1
dal1 adlı dalı master dalıyla birleştiriyorum.Local Git Repository'm ile GitHub'daki Repository'mi Bağlamak
Öncelikle GitHub üzerinde bir repository oluşturuyorum.
git remote add github-repository http://github.com/ebykdrms/repository-adi.git
remote ile uzak bağlantı kuracağımı söylüyorum.github-repository dediğim yer bu bağlantıya verdiğim bir ad. Başka bir ad da verebilirdim.
Sonraki link ise github'dan kopyalayıp aldığım repository'min linki.
git remote
Kurduğum uzak bağlantıların adlarını alabilirim.git push -u github-repository master
push, local repository'mde bulunan (commit edilmiş) dosyaları GitHub'a eklememi sağlayacak.-u ile bütün dosyaları göndereceğim
github-repository, bağlantıma verdiğim ad.
master ise projemin gönderileceği dal.
Komuttan sonra kullanıcı adımı ve şifremi soracak. Bunları girince değişikliği GitHub üzerinde görebilirim.
cat >> .gitignore
.gitignore dosyası oluşturur. Sonra da dosyanın içine yazmak için içerik bekler.dosya2.js deyip ctrl+c ile çıkalım. Artık .gitignore dosyasının içinde dosya2.js yazıyor.
Artık git, değişiklikleri kontrol ederken .gitignore içinde yazan dosyalara bakmayacaktır. Yani dosya2.js dosyasında ne değişiklik yaptığımı umursamayacaktır. Haliyle GitHub'a da push etmeyecektir. (.gitignore dosyasının kendisi umursanır ve push edilir)
.gitignore dosyam proje klasörümde bulunuyor. Buradan istediğim gibi dosya ve klasör ekleyebilirim. Örneğin .gitignore dosyasının içeriği şöyle olabilir:
dosya2.js
umursanmayacaklar/*
Böylece .gitignore dosyam sayesinde dosya2.js ve umursanmayacaklar klasörü altındakiler umursanmayacaklar.
cat .gitignore
.gitignore dosyamın içeriğini yazar. Hangi dosyaların umursanmayacağını görebilirim.git branch --all
Local'imdeki ve GitHub'daki tüm dalları listeler.README.md Dosyası
Başlık Oluşturmak
# işareti başlık oluşturur. h1 gibidir.
## işareti h2 gibidir. Bu şekilde 6 tane # kullanırsak h6 yapmış gibi oluruz.
Kalın Yazı
Örnek: **Kalın Yazı**
İtalik Yazı
Örnek: *İtalik Yazı*
Satır Başı
Örnek: <br /> (html'de olduğu gibi)
Kod Eklemek
Kodlar eğik tırnak işaretleri arasına yazılır: `
Örnek: `var a = 1;`
Link Vermek
Örnek: [Google Linki](https://google.com)
Resim Eklemek
Link verir gibi yapılır. Başına ! işareti konur.
[] içine resim bulunamazsa yazılmasını istediğim hata mesajı yazılır.
() içine de resmin linki konur. Resim dosyası github'daki repository'mde de bulunabilir.
Örnek: 
README.md dosyası düzenlemekle ilgili daha fazla yardımı buraya tıklayarak alabilirim.
Yorumlar
Yorum Gönder