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

Eclipse ile Git entegrasyonu sağlamak için EGit eklentisi ile kullanabilirsiniz.
Başlıca yapılacak adımlar şöyledir;
– Eclipse’e EGit eklentisi ekleme
– Git Repositories görünümünün açılması
– Yerel dizinimize Git deposu özelliği kazandırma
– Projenizi yerel Git deposu ile paylaşma ve git depomuza taşıma
– Yerel bilgisayarınıza ya da IDE’nize özel dosyalarınızı Git merkez deponuza göndermeme işlemi (bu sayfadaki işlem ile olmuyor hedef gosterilen sayfadaki adımları yapabilirsiniz.)
– Yerel Git depomuza kodlarımızı ekleme(add) ve sonrasında teslim etme(commit)
– Yerel Git depomuzdaki kod kolumuza Uzak Git depomuzunun adresini tanıtıyoruz,bağlıyoruz(git remote add origin)
– Yerel Git depomuzdaki kod kolumuzu Uzak Git depomuzun alması için zorlayarak ittirme(git push origin master)

– Yukarıdaki işleyişin doğru sonuçlandığının kontrolü
Alternatif Çözüm 1:
– Uzak Git deposundan güncellemeleri alma
– Yerel ile Uzak Git depoları tekrar eşleştirme girişimi
– Tekrar eşleştirme sonucu başarılı teyidi
– Uzak Git deposundan güncellemeleri alma(pull)
– Yereldeki Git depomuzdaki kodları Uzak Git depomuza zorlayarak ittirme(push)
Alternatif Çözüm 2:

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

git init

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

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>

sonrasında

git add .

komutu ile kodlarımızı yerel git depomuza ekliyoruz
sonrasında ise

git commit -m "initial commit

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.

$ git status
On branch master
nothing to commit, working directory clean

yani master kod kolundayız ve herhangi bir değişiklik yoktur.

$ git remote add origin http://mydepo/mygorup/MyApplicationName01.git 

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:

$ git push -u origin master 
fatal: Authentication failed for 'http://mydepo/mygorup/MyApplicationName01.git'

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.

$ 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

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.

$ git status
On branch master
nothing to commit, working directory clean

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.

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>

Şimdi ise şu komutu çalıştırmalısınız.

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>

Sonrasında aşağıdaki komut ile bu gibi bir çıktı görmelisiniz.

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>

Sonrasında uzak git deposundan güncellemeleri alıyoruz.

D:\Java\workspace\eclipseWorkspace\gitWorkspace\MyApplicationName01>git pull
Already up-to-date.

D:\Java\workspace\eclipseWorkspace\gitWorkspace\MyApplicationName01>

Şimdi ise uzak git merkezine değişiklikleri zorlayarak iletiyoruz.

D:\Java\workspace\eclipseWorkspace\gitWorkspace\BaskenteFatura>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://bisci01.btctr.local/EDONUSUM/baskent_efatura.git
   54402fb..141db88  master -> master

D:\Java\workspace\eclipseWorkspace\gitWorkspace\BaskenteFatura>

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

$ git remote -v
origin  http://mydepo/mygorup/MyApplicationName01.git (fetch)
origin  http://mydepo/mygorup/MyApplicationName01.git (push)
$ 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
$ git fetch
$ 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.

bu deneme yukarıdaki gibi başarılı sonuç çıktısı verirse başınız beladan kurtulmuş anlamına gelmektedir.

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean

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.

$ git push

Git komutlarından bazılarının kullanımına buradan ulaşabilirsiniz.

Share on Facebook0Tweet about this on TwitterShare on Google+0Share on StumbleUpon0Share on Reddit0

Leave a Reply


*