В чем разница между «git pull» и «git fetch»?

Если кто-либо еще интересуется извлечением размеров изображения TIFF без загрузки графического объекта, существует проверенный метод, который отлично работает для меня во всех средах. Я также нашел другое решение для этого, но оно вернуло неправильные значения из созданных Illustrator TIFF. Но есть фантастическая графическая библиотека, называемая GraphicEx Майком Лишке (очень талантливый разработчик TVirtualStringTree). Существуют реализации многих популярных форматов изображений, и все они происходят из базового класса TGraphicExGraphic, который реализует виртуальный метод ReadImageProperties. Он основан на потоках и только считывает файл-файл во всех реализациях. Итак, это молниеносно ...: -)

Итак, вот пример кода, который извлекает размеры TIFF (метод одинаковый для всех графических реализаций, PNG, PCD, TGA, GIF , PCX и т. Д.):

Uses ..., GraphicEx,...,...;

Procedure ReadTifSize (FN:String; Var iWidth,iHeight:Integer);
Var FS:TFileStream;
    TIFF:TTIFFGraphic;
Begin
  iWidth:=0;iHeight:=0;
  TIFF:=TTIFFGraphic.Create;
  FS:=TFileStream.Create(FN,OF_READ);

  Try
    TIFF.ReadImageProperties(FS,0);
    iWidth:=TIFF.ImageProperties.Width;
    iHeight:=TIFF.ImageProperties.Height;
  Finally
    TIFF.Destroy;
    FS.Free;
  End;
End;

Это все ... :-) И это то же самое для всех графических реализаций в блоке.

11242
задан Jonathan Leffler 3 November 2018 в 04:46
поделиться

7 ответов

Простым языком, git pull делает git fetch сопровождаемый git merge.

можно сделать git fetch в любое время для обновления удаленно отслеживающих ответвлений под refs/remotes/<remote>/.

Эта операция никогда не изменяет ни одного из Ваших собственных локальных ответвлений под refs/heads и безопасна обойтись без изменения Вашей рабочей копии. Я даже услышал о людях, работающих git fetch периодически в задании крона в фоновом режиме (хотя я не рекомендовал бы делать это).

А git pull - то, что Вы сделали бы для обеспечения локального ответвления, актуального с его удаленной версией, также обновление другого удаленного отслеживания переходит.

документация Мерзавца †“ получение по запросу мерзавца :

В ее режиме по умолчанию, git pull стенография для git fetch сопровождаемый [1 110].

9353
ответ дан Alec Alameddine 3 November 2018 в 04:46
поделиться
git-pull - Fetch from and merge with another repository or a local branch
SYNOPSIS

git pull   …
DESCRIPTION

Runs git-fetch with the given parameters, and calls git-merge to merge the 
retrieved head(s) into the current branch. With --rebase, calls git-rebase 
instead of git-merge.

Note that you can use . (current directory) as the <repository> to pull 
from the local repository — this is useful when merging local branches 
into the current branch.

Also note that options meant for git-pull itself and underlying git-merge 
must be given before the options meant for git-fetch.

Вы вытянули бы, если бы Вы хотите объединенные истории, Вы выбрали бы, если Вы просто 'хотите коды', поскольку некоторый человек отмечал некоторые статьи здесь.

171
ответ дан Vinko Vrsalovic 3 November 2018 в 04:46
поделиться

Один из вариантов использования git fetch заключается в том, что следующее будет сообщать вам о любых изменениях в удаленной ветке с момента вашего последнего извлечения ... так что вы можете проверить перед выполнением фактического извлечения, которое может изменить файлы в ваша текущая ветка и рабочая копия.

git fetch
git diff ...origin

См .: https://git-scm.com/docs/git-diff относительно синтаксиса с двумя и тремя точками в команде diff

473
ответ дан 22 November 2019 в 19:37
поделиться

Вкратце:

Выборка Мерзавца похожа на ВЫБОР SQL. Это только покажет Вам что-то, но не обновит или изменит что-либо.

Получение по запросу Мерзавца похоже на ВЫБОР SQL тогда после этого, обновите мою локальную копию.

-7
ответ дан 22 November 2019 в 19:37
поделиться

Все ответвления хранятся в .git/refs
, Все локальные ответвления хранятся в .git/refs/heads
, Все удаленные ответвления хранятся в .git/refs/remotes

git fetch фиксации загрузок команды, файлы и судьи из удаленного репозитория в Ваш локальный repo. Выборка - то, что Вы делаете, когда Вы хотите видеть то, что все другие продолжали работать.

Поэтому, когда Вы делаете git fetch, все файлы, фиксации и судьи загружаются в этом .git/refs/remotes, можно переключиться на эти ответвления для наблюдения изменений. Можно объединить их, если Вы хотите.

git pull просто загрузки эти изменения и также объединяет их с текущим ответвлением.

2
ответ дан 22 November 2019 в 19:37
поделиться

Я просто хочу добавить маленькую дополнительную информацию. Получение по запросу мерзавца

git fetch 

сопровождается

git merge --ff

, Эта опция, добавленная к слиянию, является причиной, почему это не создает фиксацию слияния.

3
ответ дан 22 November 2019 в 19:37
поделиться

Потрясающая Статья об этой теме: https://www.git-tower.com/learn/git/faq/difference-between-git-fetch-git-pull

1
ответ дан 22 November 2019 в 19:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: