Eclipse ve EGit ile Git versiyon kontrol sistemi kullanımı örneği

Eclipse’e EGit eklentisini yükleme: Eclipse te EGit kullanmak için Eclipse-> Help-> Install New Software…-> Work with :http://download.eclipse.org/egit/updates-> select Eclipse Git Team Provider-Eclipse Git Team Provider-> Next-> Next-> I accepted the terms of the license agreements-> Finish. Git Repositories görünümünü hızlı erişime ekleme: Eclipse-> Window-> Show View-> Others..-> Git-> Git Repostories-> OK-> Yerele makinemize Git deposu ekleme: Eclipse-> Git Repositories View-> Create a new local Git repository-> Respository Directory: D:\Java\workspace\eclipseWorkspace\gitWorkspace Repository Name :MyApplicationName01 (outside of the workspace)-> Finish. veya ilgili dizindeyken komut satırında [code language=”shell”] git init [/code] komutunu çalıştırabilirsiniz ve ilgili dizinde .git dosyası oluşur. sonrasında ise “Git Repositories” penceresinde “Add an existing local Git Repository”-> Directory : D:\Java\workspace\eclipseWorkspace\gitWorkspace\MyApplicationName01-> Search Result kısmında “D:\Java\workspace\eclipseWorkspace\gitWorkspace\MyApplicationName01\.git”-> Finish. artık “Git Repositories” penceresinde yerel git depomuzu görebiliyoruz. Şimdi ise yeni oluşturduğunuz veya daha önceden oluşturmuş olduğunuz projenizi yerel Git deposu ile paylaşma, yani yerel projemizi yerel Git depomuza bildireceğiz ve projemizi buraya taşıyacağız: Eclipse-> Project Explorer-> sağ tuş MyProject01-> Team-> Share Project-> Git-> Next-> Repository : gitWorkspace – D:\Java\workspace\eclipseWorkspace\gitWorkspace\MyApplicationName01\.git-> Finish. D:\Java\workspace\eclipseWorkspace\gitWorkspace\MyApplicationName01\ dizininde projemiz oluştu. Bu dizin altında bir “MyApplicationName01” dizini daha oluşur ve bunun yanında ise .git gizli dosyası bulunur. İlk projenin bulunduğu dizindeki kaynak kodları yeni gösterilen dizine taşınır. Eclipse’te Java Build Path altındaki Libraries penceresinde kütüphanelerin yolları hata vereceğinden dolayı Eclipse yeniden başlatılmalı. Proje içersinde oluşan “.class” uzantılı dosyalar veya başka özel dosyalarınızı git merkez deponuza göndermemek için .gitignore adında dosya ile aşağıdaki gibi veya buradaki gibi eklemelisiniz. Projenizde bütün dosyaları da gönderebilirsiniz o zaman bu işlemi yapmaya gerek yoktur: .gitignore adında dosya oluşturup içine .class değerini yazmalısınınız. veya Eclipse ayarları ile ise aşağıdaki yöntemle bu işlemi gerçekleştirebilirsiniz. Eclipse-> Window-> Preferences-> Team-> Git-> Projects-> select option :Automatically ignore derived resources by adding then to .gitignore veya aşağıdaki gibi Git Unstaged Changes bölümünden Ignore işlemi ile yapabilirsiniz. Yerel Git depomuzla paylaştığımız projemizi işleme,teslim etme (commit), Yani istediğimiz bütün dosyaları Yerel Git depomuza teslim ediyoruz ki sonrasında Yerel Git depomuzdan Uzak Git depomuza göndermek için: Eclipse-> Window-> Show View-> Others..-> Git-> Git Staging-> OK-> Eclipse-> Git Staging View-> .settings and .classpath and .gitignore sağ tuş-> Ignore-> Unstaged Changes bölümünden Staged Changes bölümüne bütün dosyaları sürükleyim-> Commit Message : my commit messages-> Commit. veya konsoldan proje dizinine gidip “git status” komutunun çalıştırdığımızda [code language=”shell”] D:\Java\workspace\eclipseWorkspace\gitWorkspace\MyApplicationName01>git status On branch master Initial commit Untracked files: (use "git add <file>…" to include in what will be committed) MyApplicationName01/ nothing added to commit but untracked files present (use "git add" to track) D:\Java\workspace\eclipseWorkspace\gitWorkspace\MyApplicationName01> [/code] sonrasında [code language=”shell”] git add . [/code] komutu ile kodlarımızı yerel git depomuza ekliyoruz sonrasında ise [code language=”shell”]git commit -m "initial commit [/code] komutunu çalıştırdığımızda kodlarımız yerel git depomuza teslim etmiş oluyoruz. Yerel Git depomuza teslim edilen kodların tutulduğu Git kod dalı adı öntanımlı olarak ‘master’ adıyla oluşmuştur. Eclipse-> Project Explorer altında ilgili proje adının yanına [MyApplicationName01 master] ifadesi görebilirsiniz. Şimdi ise yerel Git depomuzdaki kod kolumuzu Uzak Git depomuzun alması için zorlayarak ittireceğiz yani İngilizce karşılığı olarak push işlemi: Bu işlemi çok kısa bir yöntem olan komut satırı üzerinden aşağıdaki gibi gerçekleştirebilirsiniz. Komut satırından D:\Java\workspace\eclipseWorkspace\gitWorkspace\MyApplicationName01\adresine gidildikten sonra-> “git status” komutunu çalıştırdığınızda aşağıdaki gibi bir ifade görürsünüz. [code language=”shell”] $ git status On branch master nothing to commit, working directory clean [/code] yani master kod kolundayız ve herhangi bir değişiklik yoktur. [code language=”shell”] $ git remote add origin http://mydepo/mygorup/MyApplicationName01.git [/code] komutunu çalıştırıyoruz. http://mydepo/mygorup/MyApplicationName01.git adresi daha önceden ulaşılabilir durumda ise bu komut karşıda Git deposu oluşturmaz yoksa oluşturup yerel Git deposu ile Uzak Git deposunu birbirine bağlar sonrasında aşağıdaki gibi karşıdaki baş(HEAD) nokta hedefine master adındaki kod kolumuzu göndereceğiz. Henüz uzak git depomuzda bir değişiklik yok. Yereldeki master kod kolumuzu origin olarak belirlediğimiz uzak Git depomuza gönderiyoruz ya da direkt olarak bir alttaki komutu çalıştırın: [code language=”shell”] $ git push -u origin master fatal: Authentication failed for ‘http://mydepo/mygorup/MyApplicationName01.git’ [/code] Yukarıdaki komutu çalıştırdığınız sonuç çıktınızda bu şekilde hata varsa aşağıdaki komutu çalıştırın. “git push origin master” Çalıştırılan bu komut sonrasında çıktımız aşağıdaki gibi olacaktır. [code language=”shell”] $ git push origin master Counting objects: 555, done. Delta compression using up to 4 threads. Compressing objects: 100% (517/517), done. Writing objects: 100% (555/555), 23.03 MiB | 65.00 KiB/s, done. Total 555 (delta 114), reused 0 (delta 0) To http://mydepo/mygorup/MyApplicationName01.git * [new branch] master -> master [/code] Projenizde değişiklik yaptıktan sonra yerele teslim edin(commit) ve sonra aşağıdaki adımlar ile uzak Git deposu için zorla ittirme(push) işlemini yapın. Yukarıdaki işleyişin doğru sonuçlandığının kontrolünü aşağıdaki kontrol ile sağlayabilirsiniz. Kontrol için aşağıdaki komutu çalıştırın sonuç çıktısı bu şekilde ise aşağıdaki alternatif çözümlerden birini yapabilirsiniz. [code language=”shell”] $ git status On branch master nothing to commit, working directory clean [/code] Alternatif Çözüm 1: Ya bu sırayla Bu çıktı sonucundan yerel git depomuzu güncelleyeceğimiz uzak git deposu tanımlı değildir. Git pull yaptığımızda aşağıdaki gibi sonuç çıktısı alıyorsanız yerel git deponuzu güncellemek için uzak git deposunu henüz algılamamıştır. “There is no tracking information for the current branch. Please specify which branch you want to merge with. See git-pull(1) for details. git pull If you wish to set tracking information for this branch you can do so with: git branch –set-upstream-to=origin/ master” hatası çözümü. [code language=”shell”] D:\Java\workspace\eclipseWorkspace\gitWorkspace\MyApplicationName01>git pull There is no tracking information for the current branch. Please specify which branch you want to merge with. See git-pull(1) for details. git pull <remote> <branch> If you wish to set tracking information for this branch you can do so with: git branch –set-upstream-to=origin/<branch> master D:\Java\workspace\eclipseWorkspace\gitWorkspace\MyApplicationName01> [/code] Şimdi ise şu komutu çalıştırmalısınız. [code language=”shell”] D:\Java\workspace\eclipseWorkspace\gitWorkspace\MyApplicationName01>git branch –set-upstream-to=origin/remote_branch_name local_branch_name Branch local_branch_name set up to track remote branch remote_branch_name from origin. D:\Java\workspace\eclipseWorkspace\gitWorkspace\MyApplicationName01> [/code] Sonrasında aşağıdaki komut ile bu gibi bir çıktı görmelisiniz. [code language=”shell”] D:\Java\workspace\eclipseWorkspace\gitWorkspace\MyApplicationName01>git status On branch master Your branch is ahead of ‘origin/master’ by 1 commit. (use "git push" to publish your local commits) nothing to commit, working directory clean D:\Java\workspace\eclipseWorkspace\gitWorkspace\MyApplicationName01> [/code] Sonrasında uzak git deposundan güncellemeleri alıyoruz. [code language=”shell”] D:\Java\workspace\eclipseWorkspace\gitWorkspace\MyApplicationName01>git pull Already up-to-date. D:\Java\workspace\eclipseWorkspace\gitWorkspace\MyApplicationName01> [/code] Şimdi ise uzak git merkezine değişiklikleri zorlayarak iletiyoruz. [code language=”shell”] D:\Java\workspace\eclipseWorkspace\gitWorkspace\MyApplicationName01>git push Counting objects: 10, done. Delta compression using up to 4 threads. Compressing objects: 100% (8/8), done. Writing objects: 100% (10/10), 882 bytes | 0 bytes/s, done. Total 10 (delta 4), reused 0 (delta 0) To http://my.local.server/YCNEDONUS/my_application_name_01.git 54402fb..141db88 master -> master D:\Java\workspace\eclipseWorkspace\gitWorkspace\MyApplicationName01> [/code] En son yapılmış olan değişiklikler artık Uzak Git deposunda yer almaktadır. Alternatif Çözüm 2: ya da bu sırayla ilerlemelisiniz. Sırasıyla aşağıdaki komutları çalıştırın [code language=”shell”] $ git remote -v origin http://mydepo/mygorup/MyApplicationName01.git (fetch) origin http://mydepo/mygorup/MyApplicationName01.git (push) [/code] [code language=”shell”] $ git push fatal: The current branch master has no upstream branch. To push the current branch and set the remote as upstream, use git push –set-upstream origin master [/code] [code language=”shell”] $ git fetch [/code] [code language=”shell”] $ git push -u origin master Counting objects: 18, done. Delta compression using up to 4 threads. Compressing objects: 100% (12/12), done. Writing objects: 100% (18/18), 4.96 KiB | 0 bytes/s, done. Total 18 (delta 5), reused 0 (delta 0) To http://mydepo/mygorup/MyApplicationName01.git 9865e8d..00fd599 master -> master Branch master set up to track remote branch master from origin. [/code] bu deneme yukarıdaki gibi başarılı sonuç çıktısı verirse başınız beladan kurtulmuş anlamına gelmektedir. [code language=”shell”] $ git status On branch master Your branch is up-to-date with ‘origin/master’. nothing to commit, working directory clean [/code] sonrasındaki git status komutu sonuç çıktısında ‘origin/master’ ifadesini görüyorsanız bu süper bir haber. Herşey tamamdır. Bundan sonraki bütün değişiklikleri ise sadece aşağıdaki gibi yapıbilirsiniz. [code language=”shell”] $ git push [/code] Git komutlarından bazılarının kullanımına buradan ulaşabilirsiniz.]]>

Leave a Reply

Your email address will not be published. Required fields are marked *