Яка різниця між `git fetch origin` та` git remote update origin`?


115

У відповідь на запитання про витягнення одночасних комірок із сховища git , мені рекомендували використовувати git remote updateзамість git fetch. Я прочитав обидві чоловічі сторінки, але не можу сказати, що я зрозумів їх цілком.

Хтось може мені пояснити, як git fetch originі як get remote update originповодитися по-різному?


Відповіді:


133

Це не має ніякої різниці при такому використанні.

remote updateце команда дуже високого рівня - вона підтримує групування віддалених ( remotes.<group> = <list>) та оновлення всіх віддалених (крім тих, що мають remote.<name>.skipDefaultUpdateнабір), але не будь-який із більш конкретних варіантів отримання. Під кришкою, однак, це робиться точно так само, як і за допомогою стандартних параметрів.

Відповідь, що рекомендує remote update замість git fetch, насправді рекомендувала його без віддаленого імені, просто заради отримання всіх, а не лише тієї, яка названа як аргумент. Це еквівалентно git fetch --all.

Я повинен додати застереження, що вилучення та віддалене оновлення насправді не використовували той самий кодовий шлях до версії 1.6.6.1 (випущена 23 грудня 2009 р.). Ще до цього вони, по суті, робили те саме, просто використовуючи інший код (можливо, поводяться дещо інакше в кутових випадках, але я не можу придумати жодної вершини голови).


1
Дуже цікаво. +1. Якщо ви подивитеся на нотатки до випуску Git (які я склав тут: pastebin.com/LNhRhQS3 ), то здається, що лише 1.7.0 (відразу після 1.6.6.2) дозволяє використовувати " git fetch --all" замість " git remote update".
VonC

Ах, я насправді не перевіряв, коли fetch --allзайшов. Я все це роблю лише за допомогою варіацій git log --grep=...і git describe --containsв моєму клоні git.git.
Каскабель

Гм, добре, що дивно - виконувати 9c4a036b є "Навчити - всім варіантам" git fetch "", а git описувати - містить вміст v1.6.6.1~1^2~9. (Той самий випуск, що і зміна віддаленого оновлення, про який я згадував у своїй відповіді, оновлений для додавання до нього другорядної версії). Може бути, пізно потрапляти в ноти до випуску?
Каскабель

@Jefromi: приємний спосіб розкопати цю інформацію, але я вважаю за краще спочатку переглядати нотатки до випуску, і мене розчарувало відсутність однієї сторінки для всіх нотаток до випуску, отже, моя маленька копія-вставка у пастібін.
VonC

@Jefromi: прямо ... тепер я мушу знайти спосіб зібрати все "що готується в Git", щоб зрозуміти, чому 9c4a036b не зробив це в офіційному випуску до 1.7;)
VonC
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.