Git – GitHub Nedir ve Kullanım Rehberi

0 0
Okuma Süresi:10 Dakika, 6 Saniye

Sizlere bu yazıda versiyon kontrol sistemlerinden biri olan Git yazılımını ve depolama alanlarından biri olan GitHub’ı anlatacağım. Konulara geçmeden önce konu listesini aşağıdan inceleyebilirsiniz.

git-github
git-github

Git Nedir?

Bir versiyon kontrol sistemidir. Yani yapacağınız projelerin kopyalarını alarak projelerinizin eski versiyonlarına kolaylıkla geri dönmenizi sağlayan bir sistemdir. Genellikle yazılım geliştiriciler tarafından kullanılır. Birçok kurumsal yazılım şirketinin de kullandığı versiyon kontrol sistemidir.

Ancak bu sistem sadece yazılım projelerini kopyalamak için kullanılıyor zannediyorsanız yanılıyorsunuz. Bilgisayarınız üzerinde yapacağınız bir projeyi, makaleyi, tezi bu versiyon kontrol sistemine kopyalayabilirsiniz.

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-min

Git’e Neden İhtiyaç Duyarız?

Herhangi bir yazılım projesi geliştirirken eski yazdığımız kodlara geri dönüş yapabilmek amacıyla en son yazdığımız projenin kopyasını alarak onun üzerinden devam ederiz. Ancak bu çok eski bir yöntem ve bizi karışık bir durumun içine sokuyor. (Herhalde kimse dosyaların içinde kaybolmak istemez 😊) Bu nedenlerden dolayı Git’in versiyon kontrol sistemine ihtiyaç duyuyoruz. Bu yazılım sayesinde projelerimizin versiyonları sistemde kopyalanmış şekilde saklanır ve eğer bu projeyi Github gibi uzak bir repoda tutuyorsanız ihtiyaç duyduğunuz zaman indirebilir ya da kod incelemesi yapabilirisiniz eğer projenizi local’de tutuyorsanız versiyon değiştirme yöntemi ile eski proje kopyalarınıza ulaşabilirsiniz.

Git’in Kurulumu

Windows

Windows bilgisayarınıza indirmek için git’in resmi internet sitesi olan www.git-scm.com gidip oradan bilgisayarınıza uygun olan git yükleme dosyasını indiriyorsunuz. Daha sonra dosyayı açarak next next şeklinde ilerleyip kuruyoruz. Burada dikkat etmeniz gereken yer git’i cmd’de de kullanmak istiyorsanız “Use Git from the Windows Command Prompt” seçeneğini seçmelisiniz.

Windows arama çubuğunda git’i aratın ve Git GUI, Bash, CMD diye programlar çıkıyorsa başarıyla kurmuşsunuz demektir.

Linux

Linux işletim sistemi kullananlar yukarıda verdiğim Git’in adresine gidip download kısmından Linux dağıtımları için indirme komutlarını bulabilirler. Bu komutu terminallerine girerek indirme işlemini gerçekleştirebilirler.

Not: Debian tabanlı bir linux dağıtımı kullanıyorsanız bu komutun başına sudo koymayı unutmayın.

Not: Git yazılımınızın versiyon numarasını kontrol edebilmek için aşağıdaki kodu kullanabilirsiniz. Aynı zamanda bu işlemi git’in sisteminizde bulunup bulunmadığını kontrol etmek için de kullanabilirsiniz.

git --version

Git’in Çalışma Mantığı

Bu yazılım sistemini anlatmaya başlamadan önce çalışma mantığını anlatmak istiyorum. Yine iyisiniz 😊. 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. Bu alanın olmasının nedeni yaptığımız değişikliklerin kontrolünü sağlamamız içindir. Son işlem olarak geçiş bölgesindeki dosyalarımızı commit ederek git’in deposuna (repository) yolluyoruz. Bu alan sistemin son alanıdır.

Bu döngü içinde çalışan bir yapıdır. Şimdi herhalde anlatmaya hazırız.

Git Yapılandırması

Not: Burada anlatacağım komutları Linux sistemlere göre anlatacağım. Microsoft kullanıcıları Git Bash uygulaması üzerinden bu kodları uygulayabilir.

Git siteminde kullanıcı adı belirleme:

git config --global user.name “kendi_isminiz”

Git sisteminde e-mail belirleme:

git config --global user.email “email_adresiniz”

Bu yapılandırma niçin gerekli dermişcesine baktığınızı düşünerek açıklama gereği hissediyorum. Yükleyeceğiniz proje versiyonunun kim tarafından yüklendiğini diğer proje ortakları tarafından anlaşılması için bu parametreler gereklidir.

Git Projesi Oluşturma

Proje klasörünüzün bulunduğu konuma giderek aşağıdaki kodu yazdığınız durumda Git projeniz başarıyla oluşmuş olacak. Yalnız oluşacak dosya gizli dosyadır bunu göremezsiniz. Görebilmek için Windows kullanıcıları klasör seçenekleri kısmından “gizli dosyaları gör” diyerek dosyayı görebilir. Linux kullanıcıları ise terminalde projelerini oluşturdukları konuma “ls -a” yazarak görebilirler.

git init

Dosyaları Git Deposuna (Repository) Ekleme

Öncelikle git deposunu açıklayayım. Proje dosyalarınızın Git tarafından saklandığı yerdir.

Bu konuyu anlatırken projenizin içinde git projesi oluşturduğunuzu varsayarak devam edeceğim. Aşağıdaki kodu yazarak dosyalarınızı Git deposuna yüklemiş olacaksınız.

git add .
git commit -m “first commit (burası değişebilir)”

Bu sayede 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. İkinci satırdaki ‘commit -m’ komutu ise geçiş bölgesindeki dosyaları repoya yükle anlamına gelir.

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 (burası değişebilir)"

Ayrıca oluşturduğunuz versiyonların listesini görmek isterseniz aşağıdaki kodu yazmanız yeterlidir.

git log

Git Dosyasındaki Değişiklikler

Status Komutu

git status

Status komutu çalışma alanınız ile repo alanına en son eklediğiniz versiyon arasındaki farkları gösteren bir komuttur. Bu komutu kullanarak projenizde bir değişiklik olup olmadığını olduysa ekleyip commit edip etmeyeceğinizi size bildirir. Kullanımı şu şekildedir:

git status

Depoya gönderdiğiniz dosyalardan birinde değişiklik yaptınız. Bu değişiklik ile projeniz ile son proje versiyonu arasında fark var mı işlemini daha önce öğrenmiştik. Ancak dosyadaki değişiklikleri size satır satır veren komuttan bahsetmemiştik. Bu komut diff komutudur. Kullanımı aşağıdaki gibidir.

git diff

Birkaç dosyada değişiklik yaptıysanız ve sadece bir dosyada yapılmış değişiklikleri görmek istiyorsanız diff ‘ in yanına dosya ismini yazmanız yeterlidir.

Bu komut çalışma dizininde yaptığınız değişiklik ile son versiyon arasındaki değişiklikleri gösterir. Ancak siz geçiş alanı ile son versiyon arasındaki değişiklikleri görmek için şu kodu yazmalısınız.

git diff --staged

Git’ten Dosya Silme

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 (add komutunu da kullanabilirsiniz) sildiginiz_dosyanın_adi
git commit -m “… dosya silindi”

Gelelim ikinci silme şekline bu yol daha kolaydır. Bu yolun uygulanması şu şekildedir:

 git rm silinecek_dosya_adi
 git commit -m “… dosya silindi.”

Projedeki bir klasörü silmek istediğinizde ise git rm yerine git rm -r kullanmalısınız.

Git Dosya İsmi Değiştirme

Komutlar ile isim değiştirme işlemini göstereceğim.

git mv dosyanin_ilk_adi değiştirilecek_adi
git commit -m “isim değişikliği”

Git Dosya Taşıma

Sözü uzatmadan yazacağınız kodları sırasıyla göstereceğim.

git mv tasinacak_dosya_adi tasınacak_klasor_ismi
git commit -m “taşıma işlemi”

Dosyadaki Değişiklikleri Geri Alma

Çalışma Dizinindeki Değişiklikleri Geri Alma

Burada dosyada yapılan değişiklikleri geçiş bölgesine eklemeden önce geri almayı göreceğiz. Bunun için bir dosyada değişiklik yapmanız gerekiyor. Yaptıktan sonra git status komutu ile bunu görebilirsiniz. Bu değişikliği geri almak için şu komutu yazmanız yeterlidir.

git checkout -- degisiklik_yapilan_dosya_ismi

Bu işlemi dosya silme, taşıma, isim değiştirme gibi değişikliklerde de kullanabilirsiniz. Tabi bunların elle yapılan yöntemlerinde kullanabilirsiniz. Komutlarla yapılmış değişiklikleri aşağıdaki konu ile geri alabilirsiniz.

Geçiş Bölgesindeki Değişiklikleri Geri Alma

Bu işlemde oldukça kolaydır. Dosyalarınızı git add ile geçiş bölgesine yükledikten sonra işlemlerinizi geri almak istediğinizde şu komutları yazmanız her şeyi çözecektir.

git reset HEAD dosya_ismi 
git checkout –- dosya_ismi 

Versiyon Değiştirme

Birden çok versiyon oluşturmuş olabilirsiniz. Aniden eski bir versiyon üzerinde çalışmanızı sürdürmeniz gerekiyor veya sürdürmek istiyorsunuz. Bu kısımda bunu nasıl yapacağınızı anlatacağım. Bunu yapmak oldukça kolay ancak bunu yapmak bütün versiyonları silmiyor sadece gideceğiniz versiyonun kopyası üzerinde çalışmanıza devam etmenizi sağlıyor.

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.) Daha sonra aşağıdaki komutu yazıyoruz.

git checkout gidilecek_versiyonun_hash_kodu -- .
git commit – m “eski versiyondan kopyalandı”

Git Dallanma (Branch)

Git projesi oluşturduğunuzda varsayılan olarak master 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. Bu sıkıntıyı çözmek için versiyon sisteminin güzel bir çözümü var. Ana dal olan master, dallanma yöntemi ile kopyalanarak yeni branch‘lara ayrılabilir. Bu sayede 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.

Not: Branch işlemini gerçekleştirmeden önce master branch’ında tüm ekibin kullandığı ortak dosyaları push edin.

Not: Herhangi bir branch’ta yapılan değişiklik diğer branch’larda değişikliğe sebebiyet vermez.

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

Not: Eğer 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

Not: Burada master kopyalanacak branch’ı newBranch ise kopyalanan branch’ı temsil eder.

Uzak Repo’dan Local’e Proje Çekme

Github, Gitlab, Bitbucket gibi uzak repolarda var olan projeleri local sisteminize çekebilmek için aşağıdaki kod satırını kullanmanız gerekmektedir.

git clone uzak_repo_adresi
Örneğin:
git clone https://github.com/cobanov/zemin_istanbul.git

Uzak Repodan Değişiklikleri Local Repoya Çekmek

Bu başlıkta uzak repodan kastımız github, gitlab, bitbucket gibi depolama alanlarıdır. Local repo olarak bahsettiğimiz kavram ise bilgisayarınızdaki git reponuzdur. Ortak bir projede çalışıyorsanız ve depolama alanlarından birini kullanıyorsanız birden fazla kişi bu depoya dosya push’layacak. Tabi sizin local reponuz ile uzak reponun karışmaması için bu iki repoyu birleştirmek gerekmektedir. Bunu local repoda git komutları ile gerçekleştiriyoruz. Git sisteminin pull komutu ile uzak repo ile local repodaki farklılıklar kontrol edilir ve değişiklik varsa değişen dosyalar local reponuza indirilir. Bundan sonra dosyalarınızı uzak repoya sorunsuz bir şekilde push edebilirsiniz. Kod aşağıdadır.

git pull 'remote_adresi' 'branch_ismi'

Not : Eğer daha önceden uzak reponun adresini bir değişkene kaydettiyseniz ve tek bir branch ile çalışıyorsanız yukarıdaki kodun son iki gereksinimini yazmayabilirsiniz.

github

GitHub Nedir?

GitHub, Git versiyon kopyalama sistemi ile entegre olmuş depolama alanıdır. Verilerinizi burada depolayarak farklı ortamlardan verilerinize ulaşabilirsiniz.

GitHub Neden Kullanılır?

GitHub yukarıda bahsettiğimiz gibi projelerimize başka ortamlardan ulaşabilme özelliği ile kullanmamızın en büyük önceliğidir. Bunun yanı sıra insanlara açık olarak (public) paylaştığımız projelerimizi inceleyerek geri feedback vermelerini ve hatta bazı kod parçalarını kendi projelerinde kullanmalarını sağlıyor. Bu sayede geniş bir iletişim ağı kurmuş oluyoruz. Bana kalırsa kullanılması için gerekli en büyük neden… Sizce?

GitHub Repository (Depo) Oluşturma

CreateARepository-min

Repository oluşturmadan önce GitHub’a kayıt olmanız lazım. Oldukça kolay bir işlem ancak daha sonra kullanacağımız için kullanıcı adı ve şifrenizi bir yere kaydedin.

Hesabımızı açtığımıza göre ana sayfada “new repository” butonuna tıklayarak ya da profil butonunun yanındaki artı sembolündeki “add repository” butonuna tıklayarak repository oluşturabiliriz.

Bu butonlara tıkladıktan sonra repository’i oluşturmak için bir sayfaya yönlendiriliriz. Burada repository adını, açıklamasını ve public & private olup olmadığını seçiyoruz. Ardından oluştur butonuna tıklayarak repository’mizi oluşturmuş oluyoruz.

repo-min

GitHub’a Proje Gönderme

Bunun için yazımızın başlarında anlattığımız git proje oluşturma, dosya ekleme konularına göz atmanız gerekebilir. Sırayla uygulamanız gereken kodları aşağı yazıyorum.

git init
git add .
git commit -m “first commit”
git remote add origin(değişebilir) repository_uzantınız
git push -u origin master

Şimdi kodları biraz açıklayayım. İlk önce proje dosyamızda git dosyası oluşturduk. Daha sonra dosyalarımızı geçiş bölgesine ekleyip Git deposuna yolladık. GitHub’a yollamak için repository uzantınızı remote’a ekledik. En son olarak push -u komutu ile tüm dosyalarımızı GitHub’a gönderdik. Bu gönderim sırasında sizden GitHub kullanıcı adı ve şifresi istenecek.

GitHub Branch

Bu GitHub özelliği ile birden fazla proje ortağının farklı depo alanları oluşturabilir ve daha sonra master branch’i üzerinde birleştirebiliriz. Bu işlemleri branch sekmesi altında yapabiliriz.

GitHub Issues

Issues, problem demektir. Projenizde bir problemle karşılaştığınızda Issues sekmesi altında bir bildiri açarak probleminizi bildirirsiniz. Eğer projenizde takım arkadaşları varsa probleminizi çözebilir yoksa üzülmeyin çünkü projenizi gören diğer GitHub kullanıcıları da sorununuzu görür ve çözebilir.

Github Issue Closed

Eğer bir projenin issue’sunu çözdüyseniz ve bunu repoya göderirken kapatmak (close) istiyorsanız local reponuza commit ederken aşağıdaki kodu kullanabilirsiniz.

git commit -m "closes #1, closes #2, closes #3; YOUR COMMIT MESSAGE"

Her kapatılan issue’nun kodu vardır ve bu kod issue postunda yazar. Bu kodu # işaretinden sonra yazarsınız. Kapattığınız issue’lar arasına virgül koyarak ayırırsınız ve commit mesajınıda noktalı virgülden sonra yazarsınız.

Evet rehberimizin sonuna geldik. Size elimden geldiğince Git ve Github kullanımını anlatmaya çalıştım.

Umarım sizin için faydalı bir yazı olmuştur.

Bilgi her zaman paylaşılmalıdır.

Flask ile ilgili bilgiler öğrenmek isterseniz buraya tıklayabilirsiniz.

Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
100 %
Surprise
Surprise
0 %

Enes Sönmez

Lise eğitimimi Otocenter Mesleki ve Teknik Anadolu Lisesi’nde tamamladım. Bilgisayar programcılığı ve veri tabanı bölümü üzerine liseyi bitirdim. 2017 yılında Karadeniz Teknik Üniversitesi Bilgisayar Mühendisliği bölümünü kazandım. Hala eğitim hayatımı burada sürdürmekteyim. Makine öğrenmesi, derin öğrenme, görüntü işleme ve veri bilimi üzerine çalışmaktayım. Ek olarak Deep Learning Türkiye ve KTÜ Yapay Zeka Topluluğu üyesiyim.

Average Rating

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%

One thought on “Git – GitHub Nedir ve Kullanım Rehberi

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir