Git & GitHUB
Git & GitHub Nedir?
Git
Git, yazılım geliştirme süreçlerinde kullanılan, hız odaklı, dağıtık çalışan bir sürüm kontrol ve kaynak kod yönetim sistemidir. İlk sürümü Linux çekirdeği'nin geliştirilmesinde kullanılmak üzere 2005 yılında bizzat Linus Torvalds tarafından tasarlanıp geliştirilmiş, 2021 yılı itibarıyla %73 pazar payına ulaşmıştır.
GitHub
GitHub, sürüm kontrol sistemi olarak Git kullanan yazılım geliştirme projeleri için web tabanlı bir depolama servisidir. 8 Şubat 2008 tarihinde Tom Preston-Werner, Chris Wanstrath, P. J. Hyett, Scott Chacon tarafından kuruldu.
Git Kurulumu
Git kurulumunu işletim sistemi fark etmeden kurulabilir. Git komutları hiç bir zaman işletim sistemine göre değişmez.
Git indirmek için bakınız. https://git-scm.com/downloads
Windows
Git indirme linki üzerinden Windows işletim sisteminde işlemci mimarinize (x86, x64) uygun şekilde olanı indiriniz.
Linux & Mac
Güncel Linux ve mac dağıtımlarında yüklü gelmektedir. Yüklü olduğunu doğrulamak için git versiyon kontrolü yapabilirsiniz.
git --version
Eğer yüklü değil ise mac için;
Henüz sahip değilseniz, homebrew'u yükleyin , ardından komut satırını çalıştırın.
brew install git
Henüz sahip değilseniz, MacPorts'u yükleyin , ardından komut satırını çalıştırın.
sudo port install git
Eğer yüklü değil ise linux için;
Linux dağıtımınızın tercih edilen paket yöneticisini kullanarak Git'i Linux'a kurmak en kolay yoldur. Aşağıdaki komutları dağıtımlarınıza göre super user yetkileri ile çalıştırıp kurulumları gerçekleştirebilirsiniz.
Debian/Ubuntu
Debian/Ubuntu sürümünüz için en son kararlı sürüm için.
apt-get install git
Ubuntu için bu PPA, en son kararlı yukarı akış Git sürümünü sağlar
add-apt-repository ppa:git-core/ppa
apt update; apt install git
Fedora
# yum install git
Gentoo
emerge --ask --verbose dev-vcs/git
Arch Linux
pacman -S git
openSUSE
zypper install git
Mageia
urpmi git
Nix/NixOS
nix-env -i git
FreeBSD
pkg install git
Solaris 9/10/11 (OpenCSW)
pkgutil -i git
Solaris 11 Express
pkg install developer/versioning/git
OpenBSD
pkg_add git
Alpine
apk add git
Linux ve mac üzerinde varsayılan editör vim olarak gelmektedir. Bunu değiştirmek için aşağıdaki link üzerinden gerekli komutları çalıştırabilirsiniz.
https://git-scm.com/book/en/v2/Appendix-C%3A-Git-Commands-Setup-and-Config
Basit Terminal Komutları
Git kullanmak için, bazı temel komutları bilmemiz gerekiyor. Eğer daha önce kullandıysanız size çok yabancı gelmeyecektir. Ancak yine de bazı komutlardan bahsedelim.
ls
pwd
cd
Git Kayıt Olma
Git kayıt olduktan sonra komutları kimin yazdığı, hangi zamanda yazdığı gibi bir çok bilgiye ulaşabiliyoruz.
İlk olarak ismimizi kayıt edelim.
git config --global user.name "Mehmet ÖZ"
Değişlikleri kontrol edelim.
git config user.name
Şimdi ise e-mail adresimizi kayıt edelim.
git config --global user.email xxxx@hotmail.com
Değişlikleri kontrol edelim.
git config user.email
Git Terimleri
commit
branch
Index-Staging
Local Repository
git komutları
git status
git init
git add
git kullanımı
Bir klasör oluşturduk. İlk olarak git'i o klasöre bağlamamız gerekmektedir. Klasörün hangi durumda olduğunu kontrol etmek için git status komutunu kullanabiliriz.
Projeye başlamadan önce git init komutunu kullanmamız gerekmektedir.
git init'i çalıştırdıktan sonra. artık bu bizim repo muz. Her şey loglanacak tüm işlemlere gerçekleşecektir.
Kullanıma başlamadan önce her zaman git status ile kontrol edilmesi eğer git init komutu daha önce çalıştırılmış ise, tekrar bu komutun çalıştırılması hata almanıza sebep olabilir.
Klasörün içini listelediğimizde gizli dosya ve klasörleri göremeyiz. Bunun için -a opsiyonunu kullanmamız yeterlidir.
Listelediğimiz zaman .git adında bir klasör görüyoruz. En başta söylediğimiz gibi git tüm yapılan tüm işlemleri bu klasöre kaydediyor.
şimdi 2 tane dosya oluşturalım.
1.py
1.txt
şimdi tekrar status komutunu çalıştıralım.
Tekrar baktığımızda Untracked files kısmında dosyalarımızı görüyoruz.
Eklemek için
git add 1.py
şimdi status yapıyoruz.
git commit -m ”yeni dosya olusturuldu "
git log
her commitin kendine özel bir hash'i oluyor.
Author : Yazar bilgileri, en başta girdiğimiz bilgileri göreüyoruz.
date: tarih
Şimdi dosyalara bir şeyler yazalım ve tekrar durumuna bakalım.
Değişiklikler olduğunu görebiliyoruz. Bu kısımda ister dosyaları tek tek ekleyebilir.
git add dosya
istersek klasördeki tüm dosyaları ekleyebilmek için nokta “.” karakterini kullabiliriz.
git add .
gitignore
Projelerinizi github veya internet ortamını yüklemek isteyebilirsiniz. Ancak bazı durumlarda projenizdeki her şeyin gitmesini istemeyebiliriz. Bunlar gereksiz dosyalar, API keyler ve bir çok şey olabilir. Bu gibi durumlarda proje yaptığınız klasör içine .gitignore adında bir dosya oluşturuyoruz.
touch .gitignore
oluşturduğumuz dosyaya dahil olmasını istemediğimiz dosyaları yazıyoruz.
dosya1.txt
Günümüzde bir çok yazılım dili mevcut ve kullanılıyor. Kendi yazılım dilinize örnek olarak hangi dosyaların dahil edilmediği görmek için aşağıdaki siteyi incelerseniz kafanızda bir şeyler oturacaktır.
https://github.com/github/gitignore
Git branch
head
branch mehmet
git switch
merge
git stash
git stash list
git stash pop
git stash apply [stash adı]
git stash clear
Local Repo Git Hub'a Ekleme
git remote add origin https://github.com/mehmetooz/private.git
origin ismi url'e denk gelmektedir.
git branch -M main
git push -u origin master