Git pull и git fetch

Содержание:

Git pull является командой git fetch, сразу после которой следует git merge. Если еще проще, то делая pull, git стремится сделать данную задачу за вас. Точнее, объединить коммиты, обновить ветку, на которой вы в данный момент находитесь. Итак, давайте о каждой подробнее.

Fetch vs Pull: подробности

Команда Git pull применяется для извлечения и загрузки данных из удаленного хранилища с одновременным его обновлением. Удаленные репозитории – это версии проекта, которые вы уже сохраняли в сети. Вы можете иметь их массу, и каждый из них обязательно открыт для изучения и внесения перемен.

Работа со сторонними пользователями предусматривает управление удаленными репозиториями, плюс извлечение изменений из них. Управленческая функция включает следующие навыки:

  • способность добавления новых хранилищ;
  • возможность контролировать работу отдельных веток, называть их отслеживаемыми или напротив и т.д.

Просматривать удаленные архивы можно следующим способом:

  • Включите команду git remote, которая открывает доступ к удаленным архивам.
  • Имея в наличии клонированный репозиторий, то вы увидите оригинальный или несколько аналогичных.
  • Укажите ключ «V» для просмотра адреса для изучения и внесения переменных. Когда вы имеете перечень таких архивов, то данная команда отправит на все. То есть, вы запросто можете получать измененные коды от любого клиента. Если система позволяет, оставляйте в ней свои комменты.

Как добавлять удаленные архивы

Чтобы восстановить удаленный репозиторий рекомендовано ввести команду git remote add и использовать pb. К примеру, вы планируете сформировать изменения, которые присутствуют у партнера, но отсутствуют у вас, тогда введите команду git fetch pb.

Получение изменений из удаленного архива

Для извлечения сведений из архива необходимо исполнить команду $ git fetch [remote-name], связывающуюся с удаленным макетом и забирающую всю информацию, которой у вас нет. Затем у вас высветится ссылка на каждую git ветку данной разработки, которую вы можете просмотреть.

Если вы копируете хранилище командой clone, объект самостоятельно добавляется под оригинальным неймом. То есть, команда позволяет извлекать все наработки сторонних разработчиков, имеющих доступ. Необходимо отметить, что данная команда отнимает у вас локальный архив, но не сливает его с другими вашими наработками и не совершенствует то, над чем вы работаете в данный момент. Компоненты сливаются только вручную, когда это будет необходимо.

Изменения в удаленном архиве

Если вам необходимо внести свои наработки, нужно отправить их в удаленный архив. Для этого действия используйте команду git push <remote-name> <branch-name>. Обычно клонирование настраивается от имени автора автоматически. Если вы не являетесь автором, можете использовать следующую команду для внесения правок: $ git push origin master. Она срабатывает, когда клонируют с сервера, где вы имеете права на запись. Если вы используете push, и его отклоняют, то сначала вам нужно выполнить изменения, поскольку вполне вероятно, что кто-то их туда уже внес.

Git pull и git fetch

Как просмотреть удаленный архив

Если существует необходимость просмотреть информацию из одного из удаленных хранилищ, используйте git remote show <remote>. В результате вы получите урл удаленного архива и информацию о его ветках. Соответственно, главная ветка автоматически вливается в вашу сразу после получения необходимых данных. Также выдается список всех ссылок.

Немного резюмируем

Git push предназначена для перемещения изменений, внесенных пользователем в локальном репозитории в удаленный.

Git Fetch помогает пользователю загружать коммиты и ссылки из удаленного в локальный архив.

В данной связи невозможно не поговорить о команде Git Merge. Это решение внести изменения, которые вы выявили, воспользовавшись командой Git Fetch. Как следует из названия merge (соединение), вы подтверждаете необходимость слияние изменений.

Второй вариант расшифровки:

  • В том случае, если вы используете pull, Git автоматически старается выполнить работу за вас, то есть самостоятельно объединит сторонние компоненты, не давая вам возможности сначала ознакомиться с ними. Если вы не профи, то можете на данном этапе столкнуться с некоторыми проблемами в управлении ветками.
  • Используя fetch, Git, вы собираете разные коммиты из основной ветки. Именно те, которых в вашей нет, а они хранятся в локальном хранилище. Это очень полезно, поскольку исключает необходимость регулярного обновления своего хранилища. Однако следует контролировать процесс обновления, поскольку неверные шаги могут повредить все файлы. Для интеграции используйте merge.

В противопоставление

Важно в данной связи противопоставить дизайн git с более распространенным инструментом, которым является SVN или Subversion. Последний был разработан и сформирован посредством использования шаблона клиент/сервер. В данном случае есть только одно хранилище, которое, по сути, и является сервером. Однако несколько пользователей имеют возможность извлекать из него код. После чего работать над ним и только в итоге – отправлять назад – на сервер. То есть, каждый из тех, кто имеет доступ, может в любое время связаться с платформой и выполнить данную опцию.

Git разрабатывался по несколько иной схеме. То есть, для поддержки модели нет необходимости использовать центральный архив, хотя, если очень хочется, то можно и так. Плюс, в данном случае подразумевается, что пользователь и сервер не могут находиться в сети синхронно. Существует даже возможность при неправильной ссылке обменяться кодами по электронной почте. Можно также полностью выключить работу сервера, записать код на физический носитель и обменяться этим кодом через программу.

Для поддержки данной опции git определяет локальный архив с разработанным вами кодом, а также дополнительное хранилище, отражающее состояние удаленного. Сохраняя следующий клон, вы можете определить изменения, которые нужно внести даже в том случае, если удаленный архив уже недоступен. Спустя время, внесенные корректировки будут учтены в момент, когда кто-то сделает следующий запрос.

Немного подробнее о Git

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

То есть, при помощи данной системы у вас получится откатиться на более старую версию вашего проекта, произвести анализ, сравнить истоки и результаты, слить изменения воедино и многое другое. Данный процесс носит название «контроль версий».

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

Для установки git на свой девайс, вам необходимо:

  • Для Linux. Открыть установочный терминал и закачать систему с применением распаковщика файлов для вашего компьютера: sudo apt-get install git.
  • Для Windows схема практически аналогична, только используется git for windows, поскольку в него включены клиент с графическим интерфейсом и эмулятор bash.
  • Для OS X. Актуален homebrew, а затем в терминале запустите brew install git.

После установки git требуется произвести настройки. Существует довольно много опций, с которыми можно манипулировать, однако стоит поговорить о самых важных из них. После открытия терминала запустите:

  • git config —global user.name «My Name»
  • git config —global user.email.

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

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

Теперь несколько слов об удалении репозиториев. Создав архив и скорректировав его по-своему, вы решите передать его на сервер, чтобы им могли воспользоваться и другие пользователи. Для подключения к удаленному репозиторию вам нужно:

  • подключиться к нему через его же адрес;
  • также можно создать собственный в GitHub или любом сервисе по выбору;
  • для связи вашего и локального архивов необходимо выполнить следующую команду # This is only an example. Replace the URI with your own repository address и $ git remote add origin https://github.com/tutorialzine/awesome-project.git, при этом поменять URI на личный.

В проекте может присутствовать сразу несколько репозиториев, и чтобы не перепутать, каждому нужно дать свое имя. Обычно основной архив носит название «оригинальный».

Немного о понятии «ветка»

Ветка – одна из копий оригинала, имеющая свою историю, структуру и другие характеристики. Ветки изолированы, и только вы можете принять решение об их слиянии. Это может быть обусловлено рядом причин:

  • сохранение рабочей версии кода;
  • разработка параллельных опций;
  • возможность работы с разными ветками, не влияя на процесс работы других программистов;
  • сравнивание разных веток для выявления оптимальной.

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

Если вы всерьез интересуетесь сферой цифровых технологий и инноваций, вам стоит рассмотреть возможность получения интересной и высокооплачиваемой профессии IT-специалиста, закончив наши курсы программирования.

Присоединяйся к DevEducation — стань востребованным специалистом и построй карьеру в IT!