Yerel depomun güncel olup olmadığını bilmek istiyorum (ve değilse, ideal olarak değişiklikleri görmek isterim).
Nasıl yapmadan bu kontrol edebilir git fetchya git pull?
Yerel depomun güncel olup olmadığını bilmek istiyorum (ve değilse, ideal olarak değişiklikleri görmek isterim).
Nasıl yapmadan bu kontrol edebilir git fetchya git pull?
Yanıtlar:
Deneyin git fetch --dry-run
Kılavuz ( git help fetch) diyor ki:
--dry-run
Show what would be done, without making any changes.
git fetch --dry-runhiçbir şey görünmüyor?
--allmisin?
git pullkabaca eşittir a git fetch && git merge. Herhangi bir noktada getirmeyi olmadan çalıştırdıysanız, --dry-runzaten yerel olarak bir şeyler getirmişsinizdir .
git remote show origin
Sonuç:
HEAD branch: master
Remote branch:
master tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (local out of date) <-------
İlk kullanım git remote update, uzaktan kumandalarınızı güncel hale getirmek için. Ardından, aşağıdakiler gibi birkaç şeyden birini yapabilirsiniz:
git status -unotakip ettiğiniz şubenin önde mi, geride mi yoksa sapmış mı olduğunu size söyleyecektir. Hiçbir şey söylemiyorsa, yerel ve uzak aynıdır. Örnek sonuç:DEV şubesinde
Şubeniz 7 kaydetme ile "kaynak / DEV" gerisinde ve hızlı ileri sarılabilir.
(yerel şubenizi güncellemek için "git pull" kullanın)
git show-branch *master isimleri 'ana' ile biten tüm branşlardaki taahhütleri gösterecektir (örneğin, ana ve başlangıç / ana).Eğer kullanırsanız -vgit uzaktan güncelleme ile ( git remote -v updateeğer gerçekten başka komutları gerekmez) Eğer dalları güncellenmiş var olduğunu görebilirsiniz.
git remote update ; git status -unoçözüldü. git fetch --dry-runyerelin uzakta olduğu durumlarda bile çıktı vermedi.
git status -unoyerel şubenizin menşe şubenizle güncel olup olmadığını kontrol etmek için kullanabilirsiniz .
git remote update ; git status -unohile yaptı! git fetch --dry-runBen bunu beklenen (ve ne zaman hiçbir çıkış verdi git pullşeyler çekeceği).
Pek değil - ama git fetchyerel şubelerinizden hiçbirini değiştirmeyeceği için ne kadar acı çekeceğini anlamıyorum.
Diğer bir alternatif, şubeyi deponuzun yanı sıra tüm uzaktan kumandalarda git show-branch remote/branchgörmek git show-branch *branchiçin görebileceğiniz bir karşılaştırma olarak kullanmak için kullanarak uzak şubenin durumunu görüntülemek
! daha fazla https://stackoverflow.com/a/3278427/2711378 için bu yanıta bakın
İki komut vermeniz gerekecek:
git fetchYerel deponuzu uzak sunucunuzdaki dosyalarla karşılaştırmadan önce çalıştırmanız gerekir .
Bu komut yalnızca uzaktan takip şubelerinizi günceller ve siz git mergeveya aranana kadar çalışma ağacınızı etkilemez git pull.
Yerel şubeniz ile uzaktan izleme şubeniz arasındaki farkı görmek için , burada açıklandığı gibi git diff veya git cherry kullanabilirsiniz .
git fetchVeya kullanmadan bu imkansızdır git pull. "Güncel" nin ne anlama geldiğini görmek için uzak depoya gitmeden deponun "güncel" olup olmadığını nasıl bilebilirsiniz?
git pullOP'nin sorusunda açıkça yasakladığı en yüksek oylanan ve kabul edilen cevabın kullanıldığına dikkat edin.
git status -unobu çalışır ve git show-branch *mastertüm ana dalların durumunu görmek için de kullanılabilir ! Hala imkansız olduğunu mu söylüyorsun? Uzaktan kumandaya erişiminiz olduğu sürece herhangi bir şubenin durumunu görebilirsiniz!
git statussize yerel hakemlerimizle durumunu anlatır ancak, bu mu değil yerel hakemler uzak hakemlerimizle yukarı-güncel olup olmadığını söyleyecektir. Tekrar: Uzak reponun durumunu öğrenmeden uzak reponun durumunun ne olduğunu bilmek mantıksal olarak imkansızdır. Dönem. Bu sadece uzay-zamanın temel yasalarıdır.