İçindekiler
- Git Nedir?
- Git’e Neden İhtiyaç Duyarız?
- Git’in Çalışma Mantığı
- Git’in Yapılandırması
- Git Projesi Oluşturma
- Dosyaları Git Deposuna (Repository) Ekleme
- Git Dosyasındaki Değişiklikler
- Git’ten Dosya Silme
- Projedeki Dosyanın İsmini Değiştirme
- Dosya Taşıma
- Dosyadaki Değişiklikleri Geri Alma
- Versiyon Değiştirme
- Git Dallanma (Branch)
- Uzak Repo’dan Local’e Proje Çekme (Clone)
- Uzak Repodan Değişiklikleri Local Repoya Çekmek (Pull komutu)
- GitHub Nedir?
- GitHub Neden Kullanılır?
- GitHub Repository (Depo) Oluşturma
- GitHub’a Proje Gönderme
- GitHub Branch
- GitHub Issues
- Github Issue Closed
Bir versiyon kontrol sistemidir. Yapacağınız projelerin kopyalarını alarak projelerinizin eski versiyonlarına kolaylıkla geri dönmenizi sağlayan bir sistemdir.
Git sistemi, Linux çekirdeğini yazan Linus Torvalds tarafından geliştirilmiştir. Açık kaynak kodlu özgür yazılım ürünüdür.
Git çalışma mantığı olarak diğer versiyon kontrol sistemlerinden biraz farklıdır. Diğer versiyon kontrol sistemleri, commit işleminde dosyaların değişiklik durumuna göre yeni versiyon kopyasında dosyanın durumunu kaydeder. Ancak git’te her versiyon için projenin tamamının durumu kaydedilir. Çalışma alanı olarak üçe ayrılmaktadır. Çalışma dizinimizde (working directory) git projesi başlatarak işe koyuluruz. Bu alan sistemin ilk alanıdır. Daha sonra çalışma dizinimizdeki dosyaları geçiş bölgesine (staging area) ekleriz. Bu alan sistemin ara alanıdır.
-1- Kullanıcı Adı Belirleme.
git config --global user.name “username”
-2- E-mail Belirleme
git config --global user.email “email_adress”
Proje klasörünün bulunduğu konuma giderek projeyi git init
komutuyla oluşturabilirsiniz
Repository Git projenizin Git tarafından saklandığı yerdir.
git add .
git commit -m "first commit"
Projenizin bir versiyon kopyasını oluşturmuş oldunuz. Birinci satırdaki ‘add‘ komutu dosyaları geçiş bölgesine (staging area) yükle anlamına geliyor. Add komutunun yanındaki nokta çalışma alanındaki tüm dosyaları geçiş bölgesine gönder anlamına gelir eğer siz belli bir dosya göndermek istiyorsanız o dosyanın adını yazabilirsiniz.
Projede en az bir kere yukardaki yöntem ile repoya dosya yüklediyseniz ve bundan sonra dosyalarınızı geçiş bölgesine eklemeden direk repoya atmak istiyorsanız aşağıdaki kod bloğunu kullanabilirsiniz.
git commit -am "first commit"
Log kayıtlarını görüntülemek
git log
status
komutu, çalışma dizininin durumunu ve hazırlama alanını görüntüler. Hangi değişikliklerin hazırlandığını, hangilerinin yapılmadığını ve hangi dosyaların Git tarafından izlenmediğini görmenizi sağlar.
git status
diff
komutu, çalışma dizinin durumunu ve hazırlanma alanını satır şeklinde görüntülemenizi sağlar. Sadece belirli dosyalardaki değişikliğe bakmak için dosyanın uazntısını eklemelisiniz.
git diff
git diff dirctory/
Git projesinden dosya silmek için iki tane yöntem var. Birincisi direkt çalışma dizininden silmek, ikincisi ise komutlar ile silmek.
Birincisini anlatarak başlıyorum. Proje dosyanıza giderek dosyanızı siliyorsunuz. Ve sırasıyla aşağıdaki komutları yazarak silme işlemini gerçekleştirmiş olursunuz.
git rm rm_file/
git commit -m "file deleting”
git mv file_first_name last_name
git commit -m “name change”
git mv filenameToMove destinationFolder
git commit -m “Migration process”
Dosyada yapılan değişiklikleri geri almak
git checkout -- changed_filename
Dosyaları git add
ile ekledikten sonraki değişiklikleri geri almak
git reset HEAD file_name
git checkout -- file_name
Bu işlem için git log ile versiyonları sıralıyoruz ve gitmek istediğimiz versiyonun hash kodunu alıyoruz. (Hash code, commit yazısının yanında bulunan kod satırıdır.)
git checkout version_hash_code -- .
git commit – m “old version copied”
Git projesi oluşturduğunuzda varsayılan olarak main brach oluşur ve siz bu dal üzerinden işlemlerinizi gerçekleştirirsiniz. Bireysel çalışılan bir projede bu yöntem ile bir sıkıntı yaşamazsınız. Ancak çoklu projelerde çalışıyorsanız ve takım üyeleri projenin farklı alanları ile ilgileniyorsa o zaman sıkıntı yaşamaya başlayabilirsiniz. Branch sayesinde her takım üyesi kendi branch‘ında çalışarak diğer takım arkadaşlarının kodlarında değişikliğe sebebiyet vermez. Proje bitiminde merge işlemi ile tüm proje branch’ları master branch’ında birleştirilebilir.
- Branch Listesini Görme
git branch
Not : Aktif olan branch * sembolü ile gösterilir
- Yeni Branch Oluşturma
git branch new_branch_name
- Oluşturulan Branch’a Geçiş Yapmak
git checkout new_branch_name
Hem branch oluşturup hem de branch’a geçiş yapmak istiyorsanız aşağıdaki kodu kullanabilirsiniz.
git checkout -b new_branch_name
- Branch’ın İsmini Değiştirmek
git branch -m new_branch_name newBranch
- Branch Silmek
git branch -D newBranch
- Branch’ları Birleştirmek (Merge)
git merge master newBranch
git clone https://github.com/username/your_git_repo
`örneğin`
git clone https://github.com/kadirbelkuyu/try.git
git pull
git pull 'remote_address' 'branch_name'
git init
git add .
git commit -m “first commit”
git remote add origin repository_name.git
git push -u origin main