Soru 'Git pull' ve 'git fetch' arasındaki fark nedir?


Moderatör Notu: Bu sorunun zaten vardı altmış dört cevap Ona gönderilen, olup olmadığını düşünün yeni bir şey katkıda bulunmak başka bir tane göndermeden önce.

Arasındaki farklar nelerdir git pull ve git fetch?


10149
2017-11-15 09:51


Menşei


Git getiri ve git çekiyle ilgili bu iyi yazılmış makaleyi okudum: longair.net/blog/2009/04/16/git-fetch-and-merge - Marcos Oliveira
Alternatif yaklaşımımız oldu git fetch; git reset --hard origin/master iş akışımızın bir parçası olarak. Yerel değişiklikleri ortadan kaldırır, sizi ana ile güncel tutar. AMA, mevcut değişikliklerin üzerine yeni değişiklikler yapmaz ve bir karışıklık yaratmaz. Bir süredir kullandık ve temel olarak pratikte çok daha güvenli hissediyor. İlk önce herhangi bir işe devam etmeyi / eklemeyi / sakladığınızdan emin olun! - Michael Durrant
Git stashını nasıl kullanacağınızı bildiğinizden emin olun. Eğer 'çekme' ve 'getirme' hakkında soru soruyorsanız, belki 'stash' da açıklamaya ihtiyaç duyacak ... - Henry Heleine
Mercurial'dan gelen pek çok kişi "git çekme" yi kullanmaya devam ediyor, bunun "hg pull" için bir eşdeğer olduğunu düşünüyor. Bu değil. Git'in "hg çekme" eşdeğeri "git getirme" dir. - Serge Shultz
git getirme komutu şubesiyle güncellenmiş kodu getirme ve ayrıca yerel olarak yeni eklenen dalları alacak, git komutunu yalnızca geçerli şubenin güncellenmiş kodunu getir - Kartik Patel


Cevaplar:


En basit ifadelerle git pull yapar git fetch takip eden git merge.

Sen yapabilirsin git fetch uzaktan izleme dallarınızı güncellemek için istediğiniz zaman refs/remotes/<remote>/.

Bu işlem kendi yerel şubelerinizi hiçbir zaman değiştirmez. refs/headsve çalışma kopyanızı değiştirmeden yapmak güvenlidir. İnsanların çalıştığını bile duydum git fetch periyodik olarak arka planda bir cron işinde (bunu yapmamanı tavsiye etsem de).

bir git pull uzaktaki şubesi ile yerel bir şubeyi güncellemek ve diğer uzaktan takip eden şubelerinizi güncellemek için ne yapmanız gerektiğidir.

Git belgeleri: git çek


8470
2017-11-15 09:52



"A" git çekme ", deponuzu güncelleştirmek için yapmanız gereken şeydir" <- önceden getirme yoluyla yapılan depo güncellemesi değil mi? Yerel şubelerinizi uzak şubelerle güncel hale getirdiği anlamına mı geliyor? Birleştirme için: Uzak şubeleri bu şubelerin yerel kopyaları ile birleştirir mi, yoksa tam olarak neyi birleştiriyor? - Albert
@Albert: Evet, garip bir şekilde ifade edildi. git pull her zaman mevcut şube. Yani hangi dalı çekmek istediğinizi seçersiniz itibarenve mevcut şubeye çeker. itibaren şube yerel veya uzak olabilir; kayıtlı olmayan bir uzak şube bile olabilir git remote (bir URL’yi git pull Komut satırı). - intuited
@espertus: Hayır. İtme asla otomatik olarak birleştirme yapmaz. Kullanıcının birleşme çatışmalarını yerel olarak çözmesi, çözmesi bekleniyor. sonra uzaktan kumandaya geri bas. - Greg Hewgill
Eğer ben /home/alice/ ve yap git fetch /home/bob, sonraki parametrelere hangi parametreleri aktarmalıyım git merge ? - ripper234
Git'i öğrenenlere dikkat edin: pull aslında bir tarafından taklit edilemez fetch artı bir merge. Sadece bir uzak şube işaretçisinin değiştiği bir değişiklik yaptım ve merge bir şey yapmayı reddediyor. pullÖte yandan, izleme şubemi hızlı ileriye taşıyor. - Roman Starkov


  • Kullandığında pullGit, işinizi sizin için otomatik olarak yapmaya çalışır. İçeriğe duyarlıBu yüzden Git, şu anda içinde bulunduğunuz şubeye çekilen her türlü komisyonu birleştirecektir. pull  ilk önce incelemenize izin vermeden işlemleri otomatik olarak birleştirir. Şubelerinizi yakından yönetmiyorsanız, sık çatışmaya girebilirsiniz.

  • Sen ne zaman fetchGit, mevcut şubenizde bulunmayan hedef şubeden gelen tüm taahhütleri toplar ve bunları yerel deponuzda depolar. Ancak, onları mevcut şubenizle birleştirmez. Bu, deponuzu güncel tutmanız gerekiyorsa, ancak dosyalarınızı güncellerseniz kırılabilecek bir şey üzerinde çalışıyorsanız, özellikle kullanışlıdır. İşlemleri ana dalınıza entegre etmek için merge.


1850
2017-08-18 08:53



Anlaşılan, harika yorum. Bu yüzden git çekmekten nefret ediyorum. Bir revizyon aracının sizin için kod düzenlemesi yapmasına izin vermek ne zaman mantıklı olurdu? Ve iki dosyayı birleştiren şey bu değil mi? Ya bu iki düzenleme fiziksel olarak dosyada ayrılırsa, ancak mantıksal olarak mantıklı mı? - Lee Dixon
@elexhobby kısa koymak, git fetch sadece güncellemeniz .git/ dizini (AKA: yerel depo) ve dışında hiçbir şey .git/ (AKA: çalışan ağaç). Yerel şubelerinizi değiştirmez ve dokunmaz master Ya. Temas ediyor remotes/origin/master yine de git branch -avv). Daha fazla uzaktan kumanda varsa, deneyin git remote update. Bu bir git fetch tek bir komutta tüm uzaktan kumandalar için. - Tino
@Tino senin gerçekten en önemli nokta. İnsanlar "uzak" dalların aslında bir grup karma karma olarak depolandığını bilmeyebilirler. .git/refs/remotes/origin/. - Chris
Getirdiğinizde, Git, geçerli dalınızda bulunmayan hedef şubeden herhangi bir taahhüt toplar ve bunları yerel deponuzda saklar. - Uzaktan kumandadan neyin getirildiğini nasıl görüyorum ve onu yerel şubelerime nasıl eklerim? - アレックス
@Tino Hala anlamadığım şey ... ne anlamı var? Yalnızca güncellemeleri varsa neden kullanılsın? .git? Amaçlanan fayda nedir ve bundan sonra ne yapmam gerekiyor? - BadHorsie


Git tasarım felsefesini, SVN gibi daha geleneksel bir kaynak kontrol aracı felsefesi ile karşılaştırmak önemlidir.

Subversion, bir istemci / sunucu modeli ile tasarlandı ve üretildi. Sunucu olan tek bir depo vardır ve birkaç istemci sunucudan kod getirebilir, üzerinde çalışabilir ve daha sonra sunucuya geri yükleyebilir. Varsayım, istemcinin bir işlem yapması gerektiğinde sunucuyla her zaman iletişim kurabilmesidir.

Git, merkezi bir depoya ihtiyaç duymadan daha dağıtılmış bir modeli desteklemek için tasarlanmıştır (eğer isterseniz birini kullanabilirsiniz). Git, istemcinin ve "sunucunun" aynı anda çevrimiçi olması gerekmeyecek şekilde tasarlandı. Git, güvenilir olmayan bir bağlantıdaki kişilerin bile e-posta yoluyla kod alışverişinde bulunabilmesi için tasarlandı. Tamamen bağlantısız çalışmak ve git kodu ile kodu değiştirmek için bir CD yazmak mümkündür.

Git bu modeli desteklemek için kodunuzla birlikte yerel bir deposu ve ayrıca uzak deponun durumunu yansıtan ek bir yerel depoyu korur. Uzak deponun bir kopyasını yerel olarak tutarak, git, uzak depoya erişilemediğinde bile gerekli değişiklikleri anlayabilir. Daha sonra değişiklikleri başka birine göndermeniz gerektiğinde, git, bunları uzak depo tarafından bilinen bir noktadan bir dizi değişiklik olarak aktarabilir.

  • git fetch"uzak depodaki yerel kopyasını bugüne kadar getir" komutudur.

  • git pull "kendi kodumu sakladığım uzak depodaki değişiklikleri getir" diyor.

Normalde git pull bunu yaparak yapar git fetch Uzak deponun yerel kopyasını güncel duruma getirmek ve değişiklikleri kendi kod deponuzda ve muhtemelen çalışma kopyanızda birleştirmek için.

Uzaklaşmak en azından sıklıkta olduğunu akılda tutmaktır. üç kopya iş istasyonunuzdaki bir projenin. Bir kopya kendi taahhüt geçmişiniz ile 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.


1008
2018-03-31 18:43



Teknik olarak, yerel ve uzak depolar gerçekten bir ve aynıdır. Git'te bir depo bir DAG ebeveynlerine işaret eden taahhütler. Şubeler teknik olarak, işlerin anlamlı isimlerinden başka bir şey değildir. Yerel ve uzak şubeler arasındaki tek fark, uzak olanların öncelikleridir. remoteName/  Yerden yukarı Git çok iyi bir okuma. Git'in nasıl çalıştığını anladığınızda - ve güzelce basit, gerçekten - her şey sadece mantıklı. - Emil Lundberg
Açıklama için çok teşekkürler. Şu ana kadar Git'in tasarlandığını anlayamadım, böylece merkezi bir depoya sahip olmanıza gerek kalmadı. Herkes Git'i tarif ederken daima "DVCS" diyor, ama nispeten yeni bir programcı olarak, bu benim için hiçbir şey ifade etmiyor. ben hiç görüldü Bir CVCS, ve ben başkalarıyla (yani Github) işbirliği yaparken hiçbir zaman uzak bir depo ile çalışmıyorum, bu yüzden şimdiye kadar Git'i özel yapan şeyin ne olduğunu henüz anlamadım. - Brian Peterson
Yani, buna dayanarak, neden bir cron işi ile git-getirmek için iyi bir fikir değil mi? Daima yerel makineniz üzerinde çalıştığınız uzaktan kumandanın bir kopyasını tutmak iyi bir fikir gibi görünüyor. Aslında, uzaktan kumandamı son 24 saat içinde güncellediğimi ve internet bağlantısı için bir udev kancayla bağlayıp bağlamadığımı kontrol eden bir komut dosyası yazmak gibi hissediyorum. - Brian Peterson
Bir cron işine sahip olmanın iyi bir sebebi olmamasının bir nedeni: genellikle yeni bir bilet üzerinde çalışırken veya bir şubede yapılan güncellemelerde, getirilmekte olan değişiklikleri görmek isterim. Değişiklikler getirme sırasında gelmezse, diğer programcıma 'hey ittin mi?' Diye sorduğumdan daha emin olacağım. Son olarak getirdiğimden beri depoda ne kadar 'kayıp' olduğunu anladım. Bu ayrıca, bu depoda halihazırda yapılan değişikliklerin miktarını ve hızını anlamamıza yardımcı olur. - Michael Durrant
@Nabheet Thing, Git, içerik odaklı. Verileri yalnızca bir kez saklar ve bunu birden çok kez işaret eder. Bu yüzden Git'de, bir orijinalin üstünde birden fazla taahhüt bile, çoğu nesnenin aynı olduğu için repo büyüklüğünü etkilemez. - cst1992


Burada Oliver Steele'in hepsinin nasıl bir araya geldiğine dair resmi:

enter image description here

Yeterli ilgi varsa, eklemek istediğim resmi güncelleyebilirim git clone ve git merge...


664
2018-06-09 13:30



İle güncel bir resim git clone ve git merge çok yardımcı olurdu! - MEMark
Evet, lütfen ekleyin git merge - açıkça göstermeli merge ayrı olarak denir çağrıyla aynı DEĞİLDİR pull Çünkü pull uzaktaki birleşimden birleşiyor ve uzak şubenin çekilmesini izleyen yerel şubenizdeki yerel işlemlerinizi yok sayar. - JustAMartin
Bir resim bin kelime değerinde bir olup! Güncellenen görüntü klonla birleştiriliyor ve veri akışı bir yerde hazır mı? Şemada bulunanın dışında başka bir veri akışı var mı? - shikhanshu
@Contango lütfen klon ekleyin ve birleştirin. Benim gibi yeni başlayanlar için yararlı olur. - rents
Klonlar ve diğer cevaplarda (aşağıda) klonlama ve birleştirme yapan iki diyagram vardır. - intotecho


Bir kullanım durumu git fetch son çekeceğinizden bu yana uzak daldaki değişiklikleri size söyleyecektir ... böylece mevcut şubenizdeki ve çalışma kopyanızdaki dosyaları değiştirebilecek gerçek bir çekmeden önce kontrol edebilirsiniz.

git fetch
git diff ...origin

428
2018-05-07 19:23



Büyük ek! Noktalarla kafam karıştı, değil mi: git diff origin - harm
neden olmasın git diff ..origin? - Erik Allik
git diff origin ve git diff ..origin işe yarıyor ama bu garip değil ... - Marc
@Compustretch Bir boşluk olması gerekiyordu. git diff ...origineşdeğerdir git diff $(git-merge-base HEAD origin) origin (bkz. git diff [--options] <commit>...<commit> [--] [<path>…] bölümü kernel.org/pub/software/scm/git/docs/git-diff.html#_description), farklı olan git diff origin; git diff ...origin kavramsal olarak yapılan değişiklikler origin mevcut şube origin, süre git diff origin Ayrıca, daldan beri mevcut dalda yapılan değişikliklerin tersini de içerir. origin. - Max Nanasy
hiçbiri .. komutları benim için çalıştı (Windows), ama git diff origin/master aşağıda belirtildiği gibi - Brian Burns


Farkın ne olduğunu anlamak bana biraz zaman veriyor, ama bu basit bir açıklama. master localhost'ta bir daldır.

Bir depoyu klonladığınızda, tüm depoyu size yerel ana bilgisayardan getirirsiniz. Bu, o sırada bir köken / ana göstericiye sahip olmanız anlamına gelir HEAD ve usta aynı işaret ediyor HEAD.

Çalışmaya başladığınızda ve yaptığınız işlemlerde ana göstergeyi HEAD + senin taahhütlerin. Ama kökeni / ana gösterici hala klonlandığınızda ne olduğuna işaret ediyor.

Yani fark şudur:

  • Eğer yaparsan git fetch Uzak depodaki tüm değişiklikleri getirecektir (GitHub) ve menşe / ana göstericiyi HEAD. Bu arada yerel şube uzmanınız nerede olduğuna işaret etmeye devam edecektir.
  • Eğer yaparsan git pulltemel olarak (daha önce açıklandığı gibi) getirecek ve ana dalınıza yeni değişiklikleri birleştirecek ve işaretçiyi HEAD.

342
2018-05-11 18:37



origin / master, orijinli bir master of COPY olan yerel bir daldır. Aldığınızda, yerel: / origin / master güncellersiniz. Git'in her şeyin bir dal olduğunu gerçekten anladığınızda, bu çok anlam ifade eder ve farklı değişimleri korumak, hızlı yerel şubeler yapmak, birleştirmek ve yeniden inşa etmek için çok güçlü bir yoldur ve genellikle ucuz dallanmadan çok fazla değer elde eder. modeli. - cam8001
Hala kafa karıştırıcı. düşündüm git fetch uzak repodaki değişiklikleri yerel repo'unuza tam anlamıyla indirmekti, ancak bunları YAPMAYIN - yani yine de yerel repo'unuza eklenmesi / eklenmesi gerekiyor. - krb686
getirme sadece uzak / kökenden (github) yerel kökeninize doğru çeker. Ama gerçek çalışma dosyalarınızla birleştirmiyor. Eğer bir çekme yaparsanız mevcut çalışma dosyalarınızı getirecek ve birleştireceksiniz. - Gerardo


Bazen görsel bir temsil yardımcı olur.

enter image description here


180
2018-01-25 17:28



Resmin yerel repoyu da etkilediğini gösterdiğini düşünüyorum. İşte, Git çekme, yerel repo ve çalışma kopyasını etkilemenin birleşimidir. Şu anda sadece çalışma kopyasını etkiliyor gibi görünüyor. - 太極者無極而生
@ 生 者 無極 而 生 Anlaşılan - bu görüntü oldukça yanıltıcıdır, çünkü git pull olduğu atlama Getir, elbette ki yanlış. - forresthopkinsa
@thedarkpassenger Görüntüyü neden güncellemediniz? Sonra, yeni başlayanlar için en iyi atış olacak. ^^ - cmcromance
'Yerel Deposu' ile 'Çalışma Kopyası' arasındaki fark nedir? İkisi de bilgisayarda yerel değiller mi? - theITvideos


kısaca

git fetch benzer pull ama birleşmiyor. yani uzak güncellemeleri getirir (refs ve objects) ancak yerel kalır aynı (yani origin/master güncellendi ama master aynı kalır) .

git pull bir uzaktan kumandadan aşağı çeker ve anında birleşir.

Daha

git clone bir repo klonlar.

git rebase Geçerli şubenizde olmayan şubenizden geçici bir alana kadar olan şeyleri kaydeder. Şubeniz, değişikliklerinizi başlatmadan önce aynıdır. Yani, git pull -rebase uzaktaki değişiklikleri geri çekecek, yerel şubenizi geri alacaktır, mevcut şubenizin üstündeki değişikliklerinizi güncel olana kadar tek tek tekrarlayın.

Ayrıca, git branch -a Yerel ve uzak tüm şubelerinizle tam olarak neler olduğunu gösterecek.

Bu blog yazısı yararlı oldu:

Git çekme, git getirme ve git klonu (ve git rebase) - Mike Pearce arasındaki fark

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

====

GÜNCELLEŞTİRME

Bunu pratikte nasıl kullandığınızı göstermek için bunu güncellediğimi düşündüm.

  1. Yerel repo'unuzu uzaktan kumandandan güncelleyin (ancak birleştirme):

    git getir

  2. Güncellemeleri indirdikten sonra, farklılıkları görelim:

    git diff ana kaynak / master

  3. Bu güncellemelerden memnunsanız, birleştirme yapın:

    git çek

Notlar:

2. adımda: Yerel ve uzaktan kumandalar arasındaki farklar için bkz. yerel şubeyi uzak şubeyle karşılaştır?

3. adımda: Muhtemelen daha doğru (ör. Hızlı değişen bir repoda) git rebase origin İşte. 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/ 


166
2018-04-13 17:31



Bana birileri yerel kodun "bahşişi" yansıtmasını istemesi gibi geliyor, git clone. Bahşişi ipucuna koydum, sanırım her ne usta olursa olsun ve birisinin github.com'dan "Zip olarak indir" ini kastediyor - Chris K
Gitme yaptıktan sonra değişikliklerden memnun değilseniz ne olur? Sonra ne yapacağız? - Kugutsumen
Rebase paragrafın tam aradığım şeydi. Her şeyden sıfırlama, uzaktan kumandadan güncelleme fikri değişikliklerinizi önceki işlemlerin üzerine tekrarlama Bu çalışırken çalışıyordu. Doğru olduğunu varsayarak mükemmel bir açıklama. ;) - coblr


git-pull - Başka bir depo veya yerel bir şubeden alın ve birleştirme yapın
ÖZET

git çek…
AÇIKLAMA

Verilen parametrelerle git-getir işlevini çalıştırır ve birleştirmek için git-birleştirme işlevini çağırır.
Mevcut şubeye kafa (lar) alındı. --Rebase ile git-rebase çağırır
git-birleştirme yerine.

Kullanabileceğinizi unutmayın. (geçerli dizin) çekilecek <depo> olarak
Yerel depodan - bu yerel şubeleri birleştirirken yararlıdır
mevcut şubeye.

Ayrıca git-pull kendisi ve altında git-birleştirme için anlamı seçenekleri dikkat edin
git-getirme için kullanılan seçeneklerden önce verilmelidir.

Eğer tarihlerin birleşmesini istiyorsan, çekeceksin, eğer birileri buradaki bazı makaleleri etiketlediğinden, sadece 'codez' istiyorsan alırsın.


156
2017-11-15 09:52



Çok ilginç, ama gerçekten "sadece kod" istediğiniz bir kullanım durumu göremiyorum. Et aldığınızda kodunuzda ne olur? Silindi mi? Uzaktan kumandada ne olur? Birleştirme yapmazsanız kodunuzu silmeden repo'unuza nasıl girer? - e-satis
@ e-satis: Uzak dal da makinenizde yerel olarak depolanır. Ne zaman yaparsın git fetch depodaki değişiklikleri getirir ve yerel uzak şubenizi günceller. Yerel uzak şubeyi izleyen yerel şubenizi etkilemez, bu nedenle çalışma kopyanızı etkilemez. Şimdi, ne zaman mergegetirilen değişiklikleri yerel şubenizle birleştirecektir. - jeffreyveon
Getirme komutu için basit bir kullanım örneği: daha önce başkaları tarafından indirilmek üzere kullandığınız için, ağ bağlantısı gereksinimleri olmadan yalnızca güncel yerel deponuza erişerek, birleştirme veya kod incelemesi gibi diğer kişilerin son işlemlerini içeren zaman harcayan işlemleri gerçekleştirin Hızlı bir şekilde ihtiyacınız olan her şey (örneğin, başka bir geliştiriciyi ziyaret ederken ve başka bir depo ağına bağlıyken). Çekme komutu aynı yükleri indirir, ancak gerçekleştirdiği birleşimler istenmeyebilir. - Lorenzo Gatti


Uzak bir depodan getirebilir, farklılıkları görebilir ve sonra çekebilir veya birleştirebilirsiniz.

Bu, uzak bir depo için bir örnek origin ve bir şube aradı master uzak şubeyi izleme origin/master:

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

143
2018-03-21 11:07



Değişiklikleri zaten getirdiğinizden bu yana çekmeyi atlamak ve sadece bir adım atmak istediğinizde son adım olarak bir "git rebase orijini" yapın. Bunun sebebi, birisinin getiriyi aldığınızdan beri zaman içinde değişiklik yapması ve bu durumun farkın gözden geçirilmesinin getirilmemesidir. - Justin Ohms


Kısa ve kolay cevap, git pull basitçe git fetch bunu takiben git merge.

Bunu not etmek çok önemlidir git pull irade beğenip beğenmediğinizi otomatik olarak birleştirin. Bu, elbette, birleşme çatışmalarıyla sonuçlanabilir. Uzaktan kumandanız diyelim origin ve senin şuben master. Eğer sen git diff origin/master Çekmeden önce olası birleşme çatışmaları hakkında fikir sahibi olmalısınız ve buna göre yerel şubenizi hazırlayabilirsiniz.

Çekmeye ve itmeye ek olarak, bazı iş akışları dahil git rebaseBu, bağlantılı makaleden söz ettiğim gibi:

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

Kendinizi böyle bir durumda bulursanız cazip olabilirsiniz. git pull --rebase. Gerçekten, gerçekten ne yaptığını bilmiyorsan, buna karşı tavsiye ederim. Bu uyarı man için sayfa git-pull, versiyon 2.3.5:

Bu potansiyel olarak tehlikeli bir çalışma şeklidir. Yeniden yazıyor   tarihini yayınladığınızda iyi gelmeyen tarih   zaten. Git-rebase okumadıkça bu seçeneği kullanmayın (1)   dikkatlice.


132
2018-05-15 20:53



@JustinOhms Varsa git pull --rebase Verilen durumda doğru olan şey değil, iki adımda yapılırsa doğru mu? Yapılması gereken doğru şey ise, iki adımda bunu yapmak için ekstra fayda nedir? - Kaz
@Kaz - rebase otomatik olmadığından. Değişiklikleri almak ilk önce karar vermenizi sağlar. Sorunu, zaten zorladığınız geri alma geçmişi ile çözmez. Önceden itmediğiniz değişiklikleri yeniden yapılandırmanın güvenli olup olmadığını görmenizi sağlayacaktır. - Justin Ohms
@JustinOhms Değişiklikleri yeniden yapılandırmanın güvenli olup olmadığına nasıl karar verirdiniz? Sadece git rebase'i denerim ve eğer bir karmaşa yaparsa geri dönersem, bu durumda git çekme --rebase de yapabilirim. Ama belki başka yolun var mı? - Kaz
@KaZ gitk şube yapısını görsel olarak görmenizi sağlar. Yerel başınızın, uzaktan kumandalarınızın ve şube yapılarınızın konumunuzu, aldıklarınızla ilgili olarak gösterecektir. Bu şekilde, uzaktaki (ler) e itmiş olduğunuzdan önceki bir ataya dayanan getirilmiş değişiklikleri geri almamanızı sağlayabilirsiniz. - Justin Ohms
kullanım rebase Yerel bir şube üzerinde çalışırken, zaten itilmemiş. Uzaktan kumandada bulunan bir dal üzerinde çalışıyorsanız, rebase bazı kötü sorunları ile sonuçlanabilir, bu yüzden düzenli olarak tercih etmelisiniz merge. - Justus Romijn