Remote Repository'deki Verilerin ─░ncelenmesi

git clone komutu remote bir repository'yi yerel diskimize indirdikten sonra git branch -va komutunu ├žal─▒┼čt─▒rd─▒─č─▒m─▒zda a┼ča─č─▒daki g├Âr├╝nt├╝de yer alan bilgiler listelenecektir.

git branch -va

Dikkat edecek olursan─▒z local repository'lerimiz hala yerinde duruyor ancak listemizde ilave olarak origin/HEAD ve origin/master isimli iki remote kayd─▒ var. Peki daha ├Ânceki b├Âl├╝mde git add git101_ornek komutu ile olu┼čturdu─čumuz remote repository kay─▒tlar─▒m─▒z neden listlenmiyor? Bunun nedeni ├Ânceki b├Âl├╝mde kulland─▒─č─▒m─▒z git add komutu ile local ve remote repository aras─▒nda sadece bir ili┼čki/ba─člant─▒ tan─▒mlad─▒k, asl─▒nda bu komut sonras─▒nda local ve remote aras─▒nda herhangi bir veri trasferi ger├žekle┼čmez.

Remote Repository bilgileri g├╝ncel olmayabilir! Git remote repository'ler ile ilgili yerel diskinizde bir tak─▒m bilgileri i├žerir. Ancak Git arka planda otomatik olarak bu bilgileri sizin i├žin belirli aral─▒klarda g├╝ncellemez! Bu i┼člemin ger├žekle┼čmesi ve sizin di─čer tak─▒m arkada┼člar─▒n─▒z─▒n yapt─▒─č─▒ de─či┼čikliklerden haberdar olabilmeniz i├žin Git'e bu bilgileri g├╝ncellemesini s├Âylemeniz gerekir.

Git'in remote repository ile ilgili yerel diskinizde tuttu─ču bilgileri g├╝ncellemesini sa─člamak i├žin git fetch komutunu kullanman─▒z gerekir.

git fetch

Fetch komutu yerel diskinizdeki branchlerinizi ve Working Copy'deki dosyalar─▒n─▒z─▒ g├╝ncellemez veya de─či┼čtirmez. Bu komut ile sadece tak─▒m arkada┼člar─▒n─▒z─▒n remote repository'de yay─▒nlad─▒klar─▒ de─či┼čikliklere ili┼čkin bilgiler yerel diskinize indirilir. Daha sonra bu de─či┼čikliklerden hangilerini hangi local branch'e entegre edece─činize kendiniz karar verebilirsiniz.

Bu i┼člemden sonra tekrar git branch -va komutunu ├žal─▒┼čt─▒rd─▒─č─▒m─▒zda gitornek_101/master isimli remote repositorymizdeki branchlere ili┼čkin bilgileri de g├Ârebiliriz.

git banch -va

Bilgilerini g├╝ncelledi─čimiz git101_ornek/master isimli branch'de de─či┼čiklikler yapmak i├žin ├Âncelikle bu branch'i baz alarak yeni bir local branch olu┼čturup dosyalar─▒n Working Copy alan─▒m─▒za kopyalanmas─▒n─▒ sa─člamam─▒z gerekiyor. Bunun i├žin git checkout komutunu --track parametresi ile kulln─▒yoruz.

git checkout --track

git checkout --track komutu ile a┼ča─č─▒daki i┼člemler ger├žekle┼čir

  1. Remote branch ile ayn─▒ isimde local bir branch olu┼čturulur

  2. Yeni olu┼čturulan branch aktif hale getirilir

  3. --tracking parametresini kulland─▒─č─▒m─▒z i├žin yeni olu┼čan local branch ile remote branch aras─▒nda "tracking relationship" ad─▒ verilen ve local branch'in hangi remote branch'deki de─či┼čiklikleri takip etti─čini g├Âsteren ili┼čki kurulur

Tracking Relationship (Takip ─░li┼čkisi): Git'de daha ├Ânceki b├Âl├╝mlerde de bahsetti─čimiz gibi branchler asl─▒nda birbirinden tamamen ba─č─▒ms─▒zd─▒r ve aralar─▒nda do─črudan bir ili┼čki yoktur. Ancak track parametresi ile local bir branch'in hangi remote branch'deki de─či┼čiklikleri takip edece─čini tan─▒mlayabiliriz. Bu durumda Git iki branch'den herhangi birinde yer alan ancak di─čerinde yer almayan commit'leri tespit ederek bizi bilgilendirecektir. Yani

  • Local branch'inizde remote branch'e yay─▒nlamad─▒─č─▒n─▒z (push) commit'ler varsa bu durumda local branch'inizin remote branch'den ├Ânde (ahead) oldu─ču

  • Tak─▒m arkada┼člar─▒n─▒z remote branch'e baz─▒ commitleri push etti─činde ve siz de local branch'inizi g├╝ncellemedi─činiz durumda local branch'inizi remote branch'in gerisinde (behind) oldu─ču

    bilgisi Git taraf─▒ndan "Tracking Relationship" tan─▒m─▒ sayesinde git status komutunun ├ž─▒kt─▒s─▒ olarak g├Âsterilir

Local branch'imizi haz─▒rlad─▒─č─▒m─▒za g├Âre gelin ┼čimdi birka├ž de─či┼čiklik yapal─▒m. Bu de─či┼čiklikleri yapt─▒ktan sonra her zamanki gibi ├Ânce de─či┼čikliklerimizi Staging Area'ya al─▒yoruz ve sonras─▒nda da commit i┼člemini ger├žekle┼čtirerek local repository'de versiyon kontrol├╝ne ili┼čkin i┼člemlerimizi bitiriyoruz. Son ad─▒m olarak da git push komutu ile localdeki bu de─či┼čikliklerimizi remote branch'de yay─▒nl─▒yoruz.

git push

git push push komutu asl─▒nda git push format─▒ndad─▒r. Ancak local branch'imizi olu┼čtururken kulland─▒─č─▒m─▒z track parametresi sayesinde kurulan "Takip ─░li┼čkisi" sayesinde push komutunun uzun hali yerine sade hali olan git push format─▒nda kullanabiliyoruz.