'Git pull' ve 'git fetch' aras─▒ndaki fark nedir?


Al─▒nan cevaba git


Moderat├Âr Not: Bu sorunun zaten kendisine g├Ânderilen altm─▒┼č yedi cevab─▒ oldu─čuna g├Âre (baz─▒lar─▒ silindi), ba┼čka bir ilan─▒ g├Ândermeden ├Ânce yeni bir ┼čeye katk─▒da bulunup bulunmad─▒─č─▒n─▒z─▒ d├╝┼č├╝n├╝n .

Aras─▒ndaki farklar nelerdir git pull ve git fetch ?


11363









Cevap say─▒s─▒n─▒ say: 30






En basit ifadeyle, git pull bunu bir git fetch a git merge .

git fetch Alt─▒ndaki uzaktan izleme ┼čubelerinizi g├╝ncellemek i├žin istedi─činiz zaman yapabilirsiniz refs/remotes/<remote>/ .

Bu i┼člem hi├žbir zaman kendi yerel ┼čubelerinizden refs/heads hi├žbirini de─či┼čtirmez ve ├žal─▒┼čma kopyan─▒z─▒ de─či┼čtirmeden yap─▒lmas─▒ g├╝venlidir. git fetch Arka planda bir cron i┼činde periyodik olarak ├žal─▒┼čan insanlar─▒ bile duydum ( bunu yapmay─▒ tavsiye etmeme ra─čmen).

A git pull , uzaktaki bir s├╝r├╝m├╝yle yerel bir ┼čubeyi g├╝ncellemek ve ayn─▒ zamanda di─čer uzaktan takip eden ┼čubelerinizi g├╝ncellemek i├žin yapaca─č─▒n─▒z ┼čeydir.

Git belgeleri - git pull :

Varsay─▒lan modunda, ard─▒ndan git pull gelenler i├žin stenodir . git fetch git merge FETCH_HEAD


9450







  • Kulland─▒─č─▒n─▒zda pull Git, i┼činizi sizin i├žin otomatik olarak yapmaya ├žal─▒┼č─▒r. Ba─člama duyarl─▒d─▒r , bu nedenle Git, ├žal─▒┼čmakta oldu─čunuz ┼čubeye pull girilen t├╝m taahh├╝tleri birle┼čtirir . ─░lk ├Ânce onlar─▒ incelemenize izin vermeden taahh├╝tleri otomatik olarak birle┼čtirir . ┼×ubelerinizi yak─▒ndan y├Ânetemiyorsan─▒z, s─▒k s─▒k ├žat─▒┼čmalarla kar┼č─▒la┼čabilirsiniz.

  • Ne zaman fetch , Git mevcut ┼čube ve var olmayan hedef daldan herhangi kaydedilmesini toplar yerel depoda ma─čazalarda kendilerine . Ancak, bunlar─▒ ge├žerli ┼čubenizle birle┼čtirmez . Bu, ├Âzellikle havuzunuzu g├╝ncel tutman─▒z gerekiyorsa, ancak dosyalar─▒n─▒z─▒ g├╝ncellerseniz k─▒r─▒labilecek bir ┼čey ├╝zerinde ├žal─▒┼č─▒yorsan─▒z kullan─▒┼čl─▒d─▒r. Taahh├╝tleri ana ┼čubenize entegre etmek i├žin kullan─▒rs─▒n─▒z merge .


2077







Git tasar─▒m felsefesini, SVN gibi daha geleneksel bir kaynak kontrol arac─▒n─▒n felsefesiyle kar┼č─▒la┼čt─▒rmak ├Ânemlidir.

Subversion, bir istemci / sunucu modeliyle tasarland─▒ ve ├╝retildi. Sunucu olan tek bir depo vard─▒r ve birka├ž istemci sunucudan kod alabilir, ├╝zerinde ├žal─▒┼čabilir ve ard─▒ndan sunucuya geri y├╝kleyebilir. Varsay─▒m, bir i┼člem yapmas─▒ gerekti─činde m├╝┼čterinin her zaman sunucuya ba┼čvurabilece─čidir.

Git, merkezi bir depoya ihtiya├ž duymadan daha da─č─▒t─▒lm─▒┼č bir modeli desteklemek i├žin tasarland─▒ (yine de isterseniz kesinlikle kullanabilirsiniz). Ayr─▒ca git, m├╝┼čterinin ve "sunucu" nun ayn─▒ anda ├ževrimi├ži olmas─▒ gerekmeyecek ┼čekilde tasarland─▒. Git, g├╝venilmez bir ba─člant─▒daki ki┼čilerin bile e-posta yoluyla kod al─▒┼čveri┼či yapabilmesi i├žin tasarlanm─▒┼čt─▒r. Tamamen ba─člant─▒s─▒ kesilmi┼č olarak ├žal─▒┼čmak ve git ├╝zerinden kod de─či┼čimi yapmak i├žin bir CD yazmak m├╝mk├╝nd├╝r.

Bu modeli desteklemek i├žin git, kodunuzla yerel bir depoya ve uzak havuzun durumunu yans─▒tan ek bir yerel depoya sahiptir. Uzak deponun bir kopyas─▒n─▒ yerel olarak tutarak, uzak deponun eri┼čilebilir olmad─▒─č─▒ durumlarda bile gereken de─či┼čiklikleri ├ž├Âzebilirsiniz. Daha sonra de─či┼čiklikleri bir ba┼čkas─▒na g├Ândermeniz gerekti─činde, git, bunlar─▒ uzak havuzda bilinen bir noktadan itibaren bir dizi de─či┼čiklik olarak aktarabilir.

  • git fetch "Uzak havuzun yerel kopyas─▒n─▒ g├╝ncel tutun" yazan komuttur.

  • git pull "Uzak depodaki de─či┼čiklikleri kendi kodumu tuttu─čum yere getir" diyor.

Normalde git pull bunu yapmak git fetch i├žin a'y─▒ uzak havuzun yerel kopyas─▒n─▒ g├╝ncel hale getirin ve ard─▒ndan de─či┼čiklikleri kendi kod havuzunuzda ve muhtemelen ├žal─▒┼čan kopyan─▒zda birle┼čtirin.

Devralma , i┼č istasyonunuzda bir projenin en az ├╝├ž kopyas─▒n─▒n bulundu─čunu ak─▒lda tutmakt─▒r . Bir kopya, kendi taahh├╝t ge├žmi┼činizle kendi deponuzdur. ─░kinci kopya, d├╝zenledi─činiz ve olu┼čturdu─čunuz ├žal─▒┼čma kopyan─▒zd─▒r. ├ť├ž├╝nc├╝ kopya, uzak bir deponun yerel "├Ânbelle─če al─▒nm─▒┼č" kopyas─▒d─▒r.


1156







─░┼čte Oliver Steele'in hepsinin nas─▒l bir araya geldi─činin g├Âr├╝nt├╝s├╝ :


g├Âr├╝nt├╝ tan─▒m─▒n─▒ buraya girin

Yeterli ilgi varsa, eklemek i├žin resmi g├╝ncelleyebilirim git clone ve git merge ...


816







Kullan─▒m─▒n bir ├Ârne─či git fetch , a┼ča─č─▒dakilerin size en son ├žekmeden bu yana uzaktaki dalda yap─▒lacak de─či┼čiklikleri s├Âyleyece─čidir ... b├Âylece ger├žek bir ├žekmeden ├Ânce kontrol edebilirsiniz; bu, ge├žerli dal─▒n─▒zdaki ve ├žal─▒┼čan kopyan─▒zdaki dosyalar─▒ de─či┼čtirebilir.

 git fetch
git diff ...origin
 

Bak─▒n─▒z: diff komutunda ├žift ve ├╝├ž nokta nokta s├Âzdizimi ile ilgili https://git-scm.com/docs/git-diff


469







Aradaki fark─▒n ne oldu─čunu anlamak bana biraz pahal─▒ya mal oldu, ancak bu basit bir a├ž─▒klama. master Localhost'unuzda bir dald─▒r.

Bir havuzu klonlad─▒─č─▒n─▒zda, t├╝m havuzu yerel ana makinenize getirirsiniz. Bu, o s─▒rada bir k├Âken / ana i┼čaret├ži HEAD ve ayn─▒ i┼čaret eden bir ana biriminiz oldu─ču anlam─▒na gelir HEAD .

├žal─▒┼čmaya ba┼člad─▒─č─▒n─▒zda ve taahh├╝tte bulundu─čunuzda, ana g├Âstericiyi HEAD taahh├╝tlerinizi + olarak ilerletirsiniz . Ancak ba┼člang─▒├ž ÔÇőÔÇő/ ana i┼čaret├ži hala klonlad─▒─č─▒n─▒zda ne oldu─čuna i┼čaret ediyor.

Yani fark olacakt─▒r:

  • Bunu yaparsan─▒z git fetch , yaln─▒zca uzak havuzdaki ( GitHub ) t├╝m de─či┼čiklikleri al─▒r ve kaynak / ana i┼čaret├žiyi konumuna getirin HEAD . Bu arada, yerel ┼čube y├Âneticiniz bulundu─ču yeri g├Âstermeye devam edecektir.
  • Bir yaparsan─▒z git pull , temelde getirecek (daha ├Ânce a├ž─▒kland─▒─č─▒ gibi) ve ana dal─▒n─▒zdaki t├╝m de─či┼čiklikleri birle┼čtirecek ve i┼čaret├žiyi konumuna getirecektir HEAD .

363







Bazen g├Ârsel bir temsil yard─▒mc─▒ olur.


g├Âr├╝nt├╝ tan─▒m─▒n─▒ buraya girin


212







k─▒saca

git fetch benzer pull ancak birle┼čmez. yani uzaktan g├╝ncellemeleri al─▒r ( refs ve objects ) ancak yereliniz ayn─▒ kal─▒r (yani origin/master g├╝ncellenir ancak master ayn─▒ kal─▒r).

git pull uzaktan kumandadan a┼ča─č─▒ ├žeker ve an─▒nda birle┼čir.

Daha

git clone bir repo klonlar.

git rebase Ge├žerli ┼čubenizdeki ak─▒┼č yukar─▒ dalda olmayan ├Â─čeleri ge├žici bir alana kaydeder. ┼×ubeniz ┼čimdi de─či┼čikliklerinizi ba┼člatmadan ├Âncekiyle ayn─▒. B├Âylece, git pull -rebase uzaktan de─či┼čiklikleri a┼ča─č─▒ ├žeker, yerel ┼čubenizi geri al─▒r, de─či┼čikliklerinizi g├╝ncel oluncaya kadar ge├žerli ┼čubenizin ├╝st├╝nde birer birer tekrarlar.

Ayr─▒ca, git branch -a t├╝m ┼čubelerinizde neler olup bitti─čini tam olarak g├Âsterecektir - yerel ve uzak.

Bu blog yaz─▒s─▒ faydal─▒ oldu:

Git ├žekme, git alma ve git klonu (ve git rebase) aras─▒ndaki fark - Mike Pearce

ve kapaklar git pull , git fetch , git clone ve git rebase .

====

G├ťNCELLE┼×T─░RME

Bunu pratikte nas─▒l kullanaca─č─▒n─▒z─▒ g├Âstermek i├žin bunu g├╝ncelleyece─čimi d├╝┼č├╝nd├╝m.

  1. Yerel reponuzu uzaktan kumandadan g├╝ncelleyin (ancak birle┼čtirme):

     git fetch 
     
  2. G├╝ncellemeleri indirdikten sonra, farklar─▒ g├Ârelim:

     git diff master origin/master 
     
  3. Bu g├╝ncellemelerden memnunsan─▒z, birle┼čtirin:

     git pull
     

Notlar:

Ad─▒m 2: Yerel ve uzaktan kumandalar aras─▒ndaki farklar hakk─▒nda daha fazla bilgi i├žin, bkz. Yerel bir git ┼čubesi uzak ┼čubesi ile nas─▒l kar┼č─▒la┼čt─▒r─▒l─▒r?

3. ad─▒mda: Muhtemelen daha do─čru (├Ârne─čin h─▒zl─▒ de─či┼čen bir depoda) git rebase origin burada yapmak daha do─čru olur. Ba┼čka bir cevapta @Justin Ohms yorumuna bak─▒n .

Ayr─▒ca bak─▒n─▒z: http://longair.net/blog/2009/04/16/git-fetch-and-merge/


206







git-pull - Ba┼čka bir depodan veya yerel bir ┼čubeden al─▒n ve birle┼čtirin
├ľZET

git ├žekinÔÇŽ
AÇIKLAMA

Belirtilen parametrelerle git-fetch komutunu ├žal─▒┼čt─▒r─▒r ve birle┼čtirmek i├žin git-merge ├ža─č─▒r─▒r. 
Al─▒nan kafa (lar) mevcut dal─▒n i├žine --Rebase ile git-rebase'i ├ža─č─▒r─▒r.
git-merge yerine.

Kullanabilece─čini unutmay─▒n. (ge├žerli dizin) ├žekilecek <rapor>
Yerel depodan - yerel ┼čubeleri birle┼čtirirken kullan─▒┼čl─▒d─▒r. 
ge├žerli ┼čubeye.

Ayr─▒ca, git-pull'un kendisi ve git-merge'in alt─▒nda yatan se├ženeklere y├Ânelik oldu─čunu unutmay─▒n 
git-getir i├žin kullan─▒lan se├ženeklerden ├Ânce verilmelidir.

Tarihlerin birle┼čtirilmesini istersen ├žekeceksin, baz─▒ insanlar buradaki baz─▒ makaleleri etiketlerken, sadece 'cenneti istiyorsan' getirecektin.


171







Uzak bir havuzdan getirebilir, farkl─▒l─▒klar─▒ g├Ârebilir ve ard─▒ndan ├žekebilir veya birle┼čtirebilirsiniz.

Bu, uzaktaki ┼čubeyi takip eden origin bir ┼čubeye master ve uzak ┼čubeyi takip eden bir ┼čubeye ├Ârnektir origin/master :

 git checkout master                                                  
git fetch                                        
git diff origin/master
git rebase origin master
 

158







K─▒sa ve kolay bir cevap oldu─čunu git pull basit├že edilir git fetch izledi git merge .

Bu notu i├žin ├žok ├Ânemlidir git pull olacakt─▒r otomatik olarak sizin olsun ya da de─čil gibi birle┼čtirme . Bu elbette birle┼čtirme ├žat─▒┼čmalar─▒na neden olabilir. Diyelim ki uzaktan kumandan─▒z origin ve dal─▒n─▒z master . E─čer varsa git diff origin/master ├Ânce ├žekerek, potansiyel birle┼čtirme ├žat─▒┼čmalar─▒n fikir sahibi olmal─▒ ve buna g├Âre yerel ┼čube haz─▒rlamak olabilir.

├çekme ve itme i┼člemine ek olarak, ba─člant─▒l─▒ makaleden dedi─čim gibi, bunun gibi baz─▒ i┼č ak─▒┼člar─▒n─▒ i├žerir git rebase :

 git pull origin master
git checkout foo-branch
git rebase master
git push origin foo-branch
 

Kendinizi b├Âyle bir durumda bulursan─▒z, cazip gelebilirsiniz git pull --rebase . Ger├žekten, ger├žekten ne yapt─▒─č─▒n─▒ bilmedi─čin s├╝rece, buna kar┼č─▒ tavsiyede bulunabilirim. Bu uyar─▒, a┼ča─č─▒daki man sayfan─▒n git-pull versiyonudur 2.3.5 :

Bu, potansiyel olarak tehlikeli bir ├žal─▒┼čma ┼čeklidir. Zaten bu tarihi yay─▒nlad─▒─č─▒n─▒zda iyiye i┼čaret etmeyen ge├žmi┼či yeniden yazar. Git-rebase'i (1) dikkatlice okumad─▒ysan─▒z, bu se├žene─či kullanmay─▒n.


153







Tamam , burada hakk─▒nda baz─▒ bilgiler vard─▒r git pull ve git fetch , sen ka├ž basit deyi┼čle ger├žek farkl─▒l─▒klar─▒ ... anlayabilmeleri getirme son verileri al─▒r, ancak kod de─či┼čiklikleri ve ge├žerli yerel ┼čube koduyla karma┼ča gitmiyor ama ├žekme olsun kod de─či┼čir ve yerel ┼čubenizle birle┼čtirin, her biri hakk─▒nda daha fazla bilgi almak i├žin okumaya devam edin:

Git getir

T├╝m referans ve objeleri ve t├╝m yeni ┼čubeleri yerel havuzunuza y├╝kleyecektir ...

Dallar─▒n─▒ ve / veya etiketlerini (toplu olarak "refs"), tarihlerini tamamlamak i├žin gerekli nesnelerle birlikte bir veya daha fazla ba┼čka depodan al─▒n. Uzaktan izleme dallar─▒ g├╝ncellendi (bu davran─▒┼č─▒ denetleme yollar─▒ i├žin a┼ča─č─▒daki a├ž─▒klamaya bak─▒n).

Varsay─▒lan olarak, getirilmekte olan ge├žmi┼člere i┼čaret eden herhangi bir etiket de al─▒n─▒r; Bunun etkisi, ilgilendi─činiz dallara i┼čaret eden etiketleri almakt─▒r. Bu varsay─▒lan davran─▒┼č, --tags veya --no-tags se├ženeklerini kullanarak veya remote..tagOpt komutunu kullanarak de─či┼čtirilebilir. Etiketleri a├ž─▒k├ža alan bir refspec kullanarak, ilgilendi─činiz dallara i┼čaret etmeyen etiketleri da alabilirsiniz.

git fetch, verilen ve bir uzaktan kumanda varsa, tek bir adland─▒r─▒lm─▒┼č havuzdan veya URL'den veya bir kerede birden fazla havuzdan getirebilir. yap─▒land─▒rma dosyas─▒na giri┼č. (Bkz. Git-config 1 ).

Herhangi bir uzaktan belirtilmedi─činde, ge├žerli dal i├žin yap─▒land─▒r─▒lm─▒┼č bir yukar─▒ ak─▒┼č dal─▒ olmad─▒k├ža varsay─▒lan olarak orijinal uzaktan kumanda kullan─▒lacakt─▒r.

Al─▒nan reflerin isimleri, i┼čaret ettikleri nesne isimleri ile birlikte .git / FETCH_HEAD'e yaz─▒lm─▒┼čt─▒r. Bu bilgi komut dosyalar─▒ veya git-pull gibi di─čer git komutlar─▒ taraf─▒ndan kullan─▒labilir.


Git ├žekme

Bu de─či┼čiklikleri uygulayacakt─▒r uzak i├žin ge├žerli dal─▒ yerel ...

Uzak bir depodan de─či┼čiklikleri ge├žerli ┼čubeye dahil eder. Varsay─▒lan modda, git ├žekme, git getirme i├žin k─▒sa yoldur, ard─▒ndan git birle┼čtirme FETCH_HEAD.

Daha do─črusu, git pull, verilen parametrelerle git fetch'i ├žal─▒┼čt─▒r─▒r ve al─▒nan dal kafalar─▒n─▒ ge├žerli dalda birle┼čtirmek i├žin git merge'i ├ža─č─▒r─▒r. --Rebase ile git birle┼čtirme yerine git rebase'i ├žal─▒┼čt─▒r─▒r.

git-fetch 1'e ge├žirilen uzak bir havuzun ad─▒ olmal─▒d─▒r . iste─če ba─čl─▒ bir uzaktan referans ref (├Ârne─čin, bir etiketin ad─▒) veya ilgili uzaktan izleme dallar─▒na sahip ref referanslar─▒ (├Ârne─čin, refs / heads / : refs / remotes / origin / ) adland─▒rabilir, ancak genellikle add─▒r. uzak havuzdaki bir ┼čubenin.

Varsay─▒lan de─čerler, git-branch --track taraf─▒ndan ayarland─▒─č─▒ gibi, ge├žerli dal i├žin "uzak" ve "birle┼čtirme" yap─▒land─▒rmas─▒ndan okunur ve okunur.


Size nas─▒l ve birlikte ├žal─▒┼čaca─č─▒n─▒z─▒ g├Âstermek i├žin a┼ča─č─▒daki g├Ârselleri de olu┼čturuyorum ... git fetch git pull


git ├žekme ve git alma


140








g├Âr├╝nt├╝ tan─▒m─▒n─▒ buraya girin

Bu etkile┼čimli grafik g├Âsterimi git'i anlamada ├žok yararl─▒d─▒r: http://ndpsoftware.com/git-cheatsheet.html

git fetch uzaktan kumandadan yerel deponuzdaki de─či┼čiklikleri yaln─▒zca "indirir". git pull de─či┼čiklikleri indirir ve bunlar─▒ ge├žerli ┼čubenize birle┼čtirir. "Varsay─▒lan modda, ard─▒ndan git pull gelmek i├žin steno ." git fetch git merge FETCH_HEAD


128







Bonus:

Yukar─▒daki cevaplarda getir & al s├Âzlerinde, ilgin├ž bir numaray─▒ payla┼čmak istiyorum.

git pull --rebase

Bu yukar─▒daki komut, git hayat─▒mda ├žok zaman kazand─▒ran en kullan─▒┼čl─▒ komuttur.

Yeni taahh├╝tlerinizi sunucuya g├Ândermeden ├Ânce bu komutu deneyin; en son sunucu de─či┼čikliklerini otomatik olarak senkronize edecek (getirme + birle┼čtirme ile) ve taahh├╝d├╝n├╝z├╝ git g├╝nl├╝─č├╝ne en ├╝ste yerle┼čtirecektir. Manuel ├žekme / birle┼čtirme konusunda endi┼čelenmenize gerek yok.

Ayr─▒nt─▒lara bak─▒n: http://gitolite.com/git-pull--rebase


122







Bunlar─▒ kavramak i├žin durumun g├Ârsel olarak temsil edilmesini istiyorum. Belki ba┼čka geli┼čtiriciler de g├Ârmek ister, i┼čte benim ekim. Her ┼čeyin do─čru oldu─čundan tam olarak emin de─čilim, bu y├╝zden herhangi bir hata bulursan─▒z l├╝tfen yorum yap─▒n.

                                          LOCAL SYSTEM
                  . =====================================================    
================= . =================  ===================  =============
REMOTE REPOSITORY . REMOTE REPOSITORY  LOCAL REPOSITORY     WORKING COPY
(ORIGIN)          . (CACHED)           
for example,      . mirror of the      
a github repo.    . remote repo
Can also be       .
multiple repo's   .
                  .
                  .
FETCH  *------------------>*
Your local cache of the remote is updated with the origin (or multiple
external sources, that is git's distributed nature)
                  .
PULL   *-------------------------------------------------------->*
changes are merged directly into your local copy. when conflicts occur, 
you are asked for decisions.
                  .
COMMIT            .                             *<---------------*
When coming from, for example, subversion, you might think that a commit
will update the origin. In git, a commit is only done to your local repo.
                  .
PUSH   *<---------------------------------------*
Synchronizes your changes back into the origin.
 

Uzaktan kumanday─▒ alman─▒n baz─▒ ├Ânemli avantajlar─▒ ┼čunlard─▒r:

  • Performans (t├╝m a─člar─▒ ve mesajlar─▒ a─č ├╝zerinden s─▒k─▒┼čt─▒rmaya ├žal─▒┼čmadan kayd─▒r─▒n)
  • Yerel deponuzun durumu hakk─▒nda geri bildirim (├Ârne─čin, Atlassian's SourceTree kullan─▒yorum, bu kaynak, ba┼člang─▒├žtan ├Ânce veya arkada i┼členip i┼členmedi─čimi belirten bir ampul verir. Bu bilgi GIT FETCH ile g├╝ncellenebilir).

115







Bununla da m├╝cadele ettim. Asl─▒nda buraya tam olarak ayn─▒ sorunun google aramas─▒yla geldim. T├╝m bu cevaplar─▒n okunmas─▒ nihayet kafamda bir tablo ├žizdi ve 2 deponun ve 1 kum havuzunun ve bu versiyonun versiyonunu izlerken zaman i├žinde yap─▒lan eylemlerin durumuna bakmaya karar verdim. ─░┼čte burada ne buldum. Herhangi bir yere bula┼čt─▒ysam l├╝tfen beni d├╝zeltin.

Bir getirme ile ├╝├ž repo:

 ---------------------     -----------------------     -----------------------
- Remote Repo       -     - Remote Repo         -     - Remote Repo         -
-                   -     - gets pushed         -     -                     -
- @ R01             -     - @ R02               -     - @ R02               -
---------------------     -----------------------     -----------------------

---------------------     -----------------------     -----------------------
- Local Repo        -     - Local Repo          -     - Local Repo          -
- pull              -     -                     -     - fetch               -
- @ R01             -     - @ R01               -     - @ R02               -
---------------------     -----------------------     -----------------------

---------------------     -----------------------     -----------------------
- Local Sandbox     -     - Local Sandbox       -     - Local Sandbox       -
- Checkout          -     - new work done       -     -                     -
- @ R01             -     - @ R01+              -     - @R01+               -
---------------------     -----------------------     -----------------------
 

Bir ├žekme ile ├╝├ž depo

 ---------------------     -----------------------     -----------------------
- Remote Repo       -     - Remote Repo         -     - Remote Repo         -
-                   -     - gets pushed         -     -                     -
- @ R01             -     - @ R02               -     - @ R02               -
---------------------     -----------------------     -----------------------

---------------------     -----------------------     -----------------------
- Local Repo        -     - Local Repo          -     - Local Repo          -
- pull              -     -                     -     - pull                -
- @ R01             -     - @ R01               -     - @ R02               -
---------------------     -----------------------     -----------------------

---------------------     -----------------------     -----------------------
- Local Sandbox     -     - Local Sandbox       -     - Local Sandbox       -
- Checkout          -     - new work done       -     - merged with R02     -
- @ R01             -     - @ R01+              -     - @R02+               -
---------------------     -----------------------     -----------------------
 

Bu, bir al─▒m─▒n neden ├žok ├Ânemli oldu─čunu anlamama yard─▒mc─▒ oldu.


102







GIT Alma ve GIT ├çekme Aras─▒ndaki Fark a┼ča─č─▒daki senaryo ile a├ž─▒klanabilir: (Resimlerin kelimelerden daha y├╝ksek sesle konu┼čtu─čunu unutmay─▒n !, Resimsel g├Âsterim sa─člad─▒m)

Ekip ├╝yelerinizle bir proje ├╝zerinde ├žal─▒┼čt─▒─č─▒n─▒za bir ├Ârnek verelim. Bu y├╝zden projenin bir ana ┼×ubesi olacak ve t├╝m kat─▒l─▒mc─▒lar bunu kendi yerel havuzlar─▒na yerle┼čtirmeli ve daha sonra bu yerel ┼čube ├╝zerinde ├žal─▒┼č─▒p mod├╝lleri de─či┼čtirmek / Eklemek ve ard─▒ndan ana ┼čubeye geri d├Ânmek zorundad─▒r.

Yani, ilk Devlet iki ┼×ube E─čer bu- gibi olacak yerel depo ana projeyi ├žatall─▒ zaman ( A , B ve C Mod├╝ller zaten projenin tamamlanan)


g├Âr├╝nt├╝ tan─▒m─▒n─▒ buraya girin

┼×imdi, yeni mod├╝l (varsayal─▒m ├╝zerinde ├žal─▒┼čmaya ba┼člad─▒k D ) ve tamamlad─▒─č─▒n─▒zda D ana dal─▒na itin istedi─činiz mod├╝l├╝, Fakat bu arada ne olur tak─▒m arkada┼člar─▒ yeni bir Mod├╝l├╝ geli┼čtirdi olmas─▒d─▒r E , F ve modifiye C .
├ľyleyse ┼čimdi olan ┼čey, yerel deponuzun projenin orijinal ilerlemesinin gerisinde kalmamas─▒ ve bu nedenle de─či┼čikliklerinizi ana ┼čubeye itmeniz ├žat─▒┼čmaya neden olabilir ve Mod├╝l├╝n├╝z├╝n D bozulmas─▒na neden olabilir .


g├Âr├╝nt├╝ tan─▒m─▒n─▒ buraya girin

Bu gibi sorunlardan ka├ž─▒nmak ve projenin orijinal ilerleyi┼čine paralel olarak ├žal─▒┼čmak, onlar─▒n iki yoludur:

1. Git Al - Bu, yerel ┼čubenizde bulunmayan men┼če / ana ┼čube projesinde yap─▒lan t├╝m de─či┼čiklikleri indirir . Git Git birle┼čtirme komutunun, havuzunuza veya ┼čubenize getirilen de─či┼čiklikleri uygulamas─▒n─▒ bekleyecektir.


g├Âr├╝nt├╝ tan─▒m─▒n─▒ buraya girin

┼×imdi dosyalar─▒ depoya eklemeden ├Ânce dikkatlice izleyebilirsiniz. Ayr─▒ca D , Modified nedeniyle gerekirse de de─či┼čtirebilirsiniz C .


g├Âr├╝nt├╝ tan─▒m─▒n─▒ buraya girin

2. Git ├çekme- Bu, yerel ┼čubenizi men┼če / ana ┼čubeyle g├╝ncelleyecektir, yani asl─▒nda ne yaparsa Git Fetch ve Git'in birbiri ard─▒na birle┼čmesidir. Ancak bu, Anla┼čmazl─▒klar─▒n olu┼čmas─▒na neden olabilir, bu y├╝zden Git Pull'─▒ temiz bir kopya ile kullanman─▒z ├Ânerilir.


g├Âr├╝nt├╝ tan─▒m─▒n─▒ buraya girin


92







Biz sadece diyoruz:

 git pull == git fetch + git merge
 

E─čer ka├žarsan git pull , yerel veri birle┼čtirme gerekmez. E─čer ko┼čarsan─▒z git fetch , git merge yerel makinenize en son kodu almak i├žin ko┼čman─▒z gerekti─či anlam─▒na gelir . Aksi takdirde, yerel makine kodu birle┼čtirme olmadan de─či┼čtirilemez.

Bu y├╝zden Git Gui'de, getirdi─činizde, verileri birle┼čtirmeniz gerekir. Getir kendini yerelde kod de─či┼čiklikleri yapmaz. Kodu g├╝ncelledi─činizde, bir kez getirip getirerek kontrol edebilirsiniz; Kod de─či┼čmeyecek. Sonra birle┼čirsiniz ... De─či┼čtirilen kodu g├Âreceksiniz.


83







git fetch kodu uzaktaki sunucudan yerel deponuzdaki izleme dallar─▒na ├žeker. Uzaktan adl─▒ edilirse origin (varsay─▒lan) daha sonra bu dallar i├žinde olacak origin/ , ├Ârne─čin origin/master , origin/mybranch-123 Bunlar olduklar─▒n─▒, mevcut dallar─▒ de─čildir, vb yerel sunucudan bu dallar─▒n kopyalar─▒.

git pull a, git fetch ancak sonra da izleme dal─▒ndaki kodu o dal─▒n ge├žerli yerel s├╝r├╝m├╝ne birle┼čtirir. Hen├╝z bu de─či┼čikliklere haz─▒r de─čilseniz, git fetch ilk ├Ânce.


80







git fetch uzaktaki dallar─▒ al─▒r, b├Âylece siz git diff veya git merge bunlar─▒ ge├žerli olan ┼čubeyle al─▒rs─▒n─▒z . git pull ge├žerli ┼čube taraf─▒ndan izlenen uzak grupta alma i┼člemini ├žal─▒┼čt─▒r─▒r ve sonucu birle┼čtirir. git fetch Yerel ┼čubenizle birle┼čtirmeden, uzak ┼čubede herhangi bir g├╝ncelleme olup olmad─▒─č─▒n─▒ g├Ârmek i├žin kullanabilirsiniz .


75







Git Al

Yerel ┼čubenizde yapt─▒─č─▒n─▒z de─či┼čiklikleri men┼čei ile al─▒m yoluyla kar┼č─▒dan y├╝klersiniz. Getirme i┼člemi, di─čerlerinin yapm─▒┼č oldu─ču t├╝m taahh├╝tler i├žin uzak repodan sorar, ancak yerel reponuzda yoktur. Getirme bu taahh├╝tleri indirir ve yerel depoya ekler.

Git Birle┼čtirme

Birle┼čtirme komutunu kullanarak getirme yoluyla indirilen de─či┼čiklikleri uygulayabilirsiniz. Birle┼čtirme, getirilen taahh├╝tleri alma i┼čleminden al─▒r ve yerel ┼čubenize eklemeye ├žal─▒┼č─▒r. Birle┼čtirme, yerel de─či┼čikliklerinizin taahh├╝t ge├žmi┼čini koruyacak, b├Âylece ┼čubenizi itme ile payla┼čt─▒─č─▒n─▒zda Git, ba┼čkalar─▒n─▒n de─či┼čikliklerinizi nas─▒l birle┼čtirebilece─čini bilecektir.

Git Pull

Birbirine getirme ve birle┼čtirme, her ikisini birle┼čtiren bir komutun olu┼čturulmas─▒n─▒ sa─člayacak kadar s─▒k ÔÇőÔÇős─▒k birlikte ├žal─▒┼č─▒r. ├çekme bir al─▒m yapar ve indirilen taahh├╝tleri yerel ┼čubenize eklemek i├žin birle┼čtirme yapar.


70







Aras─▒ndaki tek fark git pull ve git fetch olmas─▒d─▒r:

git pull Uzak bir daldan ├žeker ve birle┼čtirir.

git fetch yaln─▒zca uzak daldan al─▒r, ancak birle┼čmez

yani git ├žekme = git alma + git birle┼čtirme ...


50







Git, kronolojik olarak eski taahh├╝tlerin daha yeni taahh├╝tler sonras─▒nda uygulanmas─▒na izin verir. Bu nedenle, depolar aras─▒nda taahh├╝t devretme eylemi iki a┼čamaya ayr─▒l─▒r:

  1. Yeni ┼čubenin uzak ┼čubeden kopyalanmas─▒, yerel uzak deponun i├žindeki bu uzak ┼čubenin kopyas─▒na.

    (repo i┼člemi i├žin repo) [email protected] >> remote/origin/[email protected]

  2. Yeni taahh├╝tleri yerel ┼čubeye entegre etmek

    (repo i├ži i┼člem) remote/origin/[email protected] >> [email protected]

2. ad─▒m─▒ yapman─▒n iki yolu vard─▒r.

  1. Son ortak atadan sonra yerel ┼čubeyi ├žatallay─▒n ve yerel depoya ├Âzg├╝ olan taahh├╝tlere paralel yeni taahh├╝tler ekleyin, taahh├╝tleri birle┼čtirerek kesinle┼čtirip ├žatal─▒ kapat─▒n.
  2. Son ortak atadan sonra yeni komisyonlar ekleyin ve yeniden yerel depoya ├Âzg├╝ taahh├╝tler uygulay─▒n.

Olarak git terminoloji, a┼čama 1 git fetch , a┼čama 2, git merge ya da git rebase

git pull oldu─ču git fetch ve git merge


43







Git, iki komutu kullanarak en son s├╝r├╝m├╝n dal─▒n─▒ uzaktan kumandadan yerel konumuna al─▒r:

  1. git fetch: Git, uzaktaki bir yerden en son s├╝r├╝me ge├žecek, ancak otomatik olarak birle┼čmiyor.      git fetch origin mastergit log -p master..origin/mastergit merge origin/master

         Yukar─▒daki komutlar, ana ┼čubenin en son s├╝r├╝m├╝n├╝ orijinden uzaktan orjinal ana ┼čubeye indirmeyi ifade eder. Ve sonra yerel ana dal ve orijin ana dal─▒n─▒ kar┼č─▒la┼čt─▒r─▒r. Sonunda birle┼č.

  2. git pull: Git uzaktan kumandadan en son s├╝r├╝m├╝ alacak ve yerel ile birle┼čecek.

        git pull origin master

         Komut yukar─▒daki e┼čde─čerdir git fetch ve git merge . Uygulamada, git fetch belki daha g├╝venli ├ž├╝nk├╝ birle┼čmeden ├Ânce de─či┼čiklikleri g├Ârebilir ve birle┼čip birle┼čtirmeyece─čimize karar verebiliriz.


35







Aras─▒ndaki fark nedir git pull ve git fetch ?

Bunu anlamak i├žin, ├Âncelikle yerel git'in yaln─▒zca yerel deponuzu de─čil, ayn─▒ zamanda uzak deponun yerel bir kopyas─▒n─▒ korudu─čunu da anlaman─▒z gerekir.

git fetch Uzaktaki deponun yerel kopyas─▒n─▒ bug├╝ne kadar getirir. ├ľrne─čin, uzak havuzunuz GitHub ise - uzak havuzda yap─▒lan de─či┼čiklikleri yerel havuzunuza uzak havuza getirmek isteyebilirsiniz. Bu, kar┼č─▒la┼čt─▒rma veya birle┼čtirme gibi i┼člemleri ger├žekle┼čtirmenize olanak sa─člar.

git pull ├ľte yandan, uzak havuzdaki de─či┼čiklikleri kendi kodunuzu tuttu─čunuz yere indirecektir. Genellikle, uzak havuzun yerel kopyas─▒n─▒ g├╝ncel hale getirmek i├žin git pull bir git fetch ilk yapar ve ard─▒ndan de─či┼čiklikleri kendi kod havuzunuzda ve muhtemelen ├žal─▒┼čan kopyan─▒zda birle┼čtirir.


35







git pull == (git alma + git birle┼čtirme)

git fetch yerel ┼čubelerde de─či┼čiklik yapmaz.

─░stenen proje i├žin ayarlanm─▒┼č bir uzaktan kumandan─▒n bulundu─ču yerel bir havuzunuz varsa, git fetch'i kullanarak mevcut uzaktan kumandan─▒n t├╝m dallar─▒n─▒ ve etiketlerini kapabilirsiniz. ... Al, yerel dallarda herhangi bir de─či┼čiklik yapmaz, bu nedenle yeni bir al─▒m de─či┼čikliklerini dahil etmek i├žin uzak bir dal─▒ e┼čle┼čtirilmi┼č bir yerel dalla birle┼čtirmeniz gerekir. github'dan


32


2013-09-19





A├ž─▒k ve basit olmaya ├žal─▒┼č─▒yorum.

Git ├žekme komutu bir asl─▒nda shortcut i├žin Git getirme ard─▒ndan git birle┼čtirme veya git Rebase yap─▒land─▒rman─▒za ba─čl─▒ olarak komuta. Git deponuzu yap─▒land─▒rabilirsiniz, b├Âylece git ├žekme i┼člemi bir yeniden ba┼člatma i┼čleminin ard─▒ndan bir getirme olur.


31







Asl─▒nda Git, kendi kodunuzun ve uzak havuzun bir kopyas─▒n─▒ tutar.

Komut git fetch , uzak havuzdan veri alarak yerel kopyan─▒z─▒ g├╝ncel tutar. Buna ihtiyac─▒m─▒z─▒n nedeni, bir ba┼čkas─▒n─▒n kodunda baz─▒ de─či┼čiklikler yapm─▒┼č olmas─▒ ve kendinizi g├╝ncel tutmak istemeniz olabilir.

Komut git pull uzak havuzdaki de─či┼čiklikleri kendi kodunuzu tuttu─čunuz yere getirir. Normal olarak, git pull bunu ├Ânce uzak havuzun yerel kopyas─▒n─▒ g├╝ncellemek i├žin bir 'git getir' yaparak yapar ve ard─▒ndan de─či┼čiklikleri kendi kod havuzunuzda ve muhtemelen ├žal─▒┼čan kopyan─▒zda birle┼čtirir.


31







 git pull = git fetch + git merge 
 

30







Yeni Ba┼člayanlar ─░├žin Basit Bir Grafik G├Âsterimi,


g├Âr├╝nt├╝ tan─▒m─▒n─▒ buraya girin

─░┼čte,

 git pull  
 

kodu deposundan al─▒r ve yerelinize yeniden rebare eder ... git ├žekme i┼čleminde yeni komisyonlar─▒n yarat─▒lmas─▒ olas─▒l─▒─č─▒ vard─▒r.

ama i├žinde

Git getir

kodu depodan al─▒r ve kullanarak yeniden el ile yeniden kullanmam─▒z gerekir. git rebase

├Ârne─čin: Sunucu ana sisteminden alaca─č─▒m ve yerel ana sistemime yeniden y├╝kleyece─čim.

1) git ├žekme (rebase otomatik olarak yap─▒lacak):

 git pull origin master
 

buradaki k├Âken , uzak repo y├Âneticiniz ┼čubenizdir

2) git getir (el ile yeniden olu┼čturulmas─▒ gerekiyor):

 git fetch origin master
 

sunucu de─či┼čikliklerini orijinden al─▒r. ve kendi ba┼č─▒n─▒za yeniden ba┼člatana kadar yerelinizde olacak. kodlar─▒ kontrol ederek ├žat─▒┼čmalar─▒ elle d├╝zeltmemiz gerekiyor.

 git rebase origin/master
 

bu, kodu yerel olarak yeniden olu┼čturur. Bundan ├Ânce do─čru dalda oldu─čunuzdan emin olun.


30



─░lgili yay─▒nlar


ÔÇťGit taahh├╝tÔÇŁ ve ÔÇťgit itmeÔÇŁ aras─▒ndaki farklar nelerdir?

Git git birle┼čtirme ile git git birle┼čtirme - no-ff aras─▒ndaki fark nedir?

'Git merge' ve 'git rebase' aras─▒ndaki fark nedir?

ÔÇťGit resetÔÇŁ ve ÔÇťgit checkoutÔÇŁ aras─▒ndaki fark nedir?

Git uzak erik, git erik, git fetch --prune, etc aras─▒ndaki farklar nelerdir?

Git clone ve checkout aras─▒ndaki fark nedir?

ÔÇťGit branchÔÇŁ ve ÔÇťgit checkout -bÔÇŁ aras─▒ndaki fark nedir?

ÔÇťGit initÔÇŁ ve ÔÇťgit init --bareÔÇŁ aras─▒ndaki fark nedir?

Git am ve git uygulamas─▒ aras─▒ndaki fark nedir?

ÔÇťGit getirme k├ÂkeniÔÇŁ ile ÔÇťgit uzaktan g├╝ncelleme k├ÂkeniÔÇŁ aras─▒ndaki fark nedir?

Etiketle ilgili di─čer sorular [git]


Docker konteynerinin i├žinden makinenin yerel ana bilgisayar─▒na nas─▒l ba─član─▒r─▒m?

Grep'i Linux'ta sadece dosya adlar─▒n─▒ g├Âstermek i├žin nas─▒l kullanabilirim?

PowerShell'deki kodu nas─▒l yorumluyorsunuz?

JavaÔÇÖda d├╝z metin dosyas─▒ okuma

Boolean de─či┼čkenlerini bir kabuk beti─činde nas─▒l ilan edebilir ve kullanabilirim?

Git g├╝nl├╝─č├╝nden veya git diff'den [duplicate] ├ž─▒kma

Ham tip nedir ve neden kullanmamal─▒y─▒z?

├ťnite Testi ├žabaya de─čer mi? [kapal─▒]

23,148,855,308,184,500 sihirli bir say─▒ m─▒, yoksa b├╝y├╝k bir ┼čans m─▒?

JavaScript de─čerlendirme i┼člevini kullanmak neden k├Ât├╝ bir fikir?