Git Fetch: мастер-класс
Опубликовано: 2023-02-26 Команда Git fetch
позволяет вам посмотреть, прежде чем прыгать. Вы можете узнать, какие изменения были внесены в удаленный репозиторий, но без перезаписи ваших локальных файлов удаленными файлами.
Что такое git fetch и что он делает?
Git выборка против вытягивания
Синхронизируйте свои локальные и удаленные репозитории с помощью git fetch
Просмотреть все извлеченные теги
Сначала делаем пробный прогон
Как получить одну ветку
Получить все ветки
Сравнение локальных и удаленных ветвей
Синхронизация локальной ветки с удаленной веткой
Недоученный щенок
Что такое git fetch и что он делает?
Команда fetch
в Git безопасно загружает коммиты, файлы и другую информацию из удаленного репозитория в ваш локальный репозиторий. Используйте выборку, когда хотите увидеть, какие изменения внесли другие разработчики, не принуждая вас принимать эти изменения. Ваши локальные файлы остаются нетронутыми. Почему это важно?
Вы должны быть внимательны, когда работаете в команде разработчиков. Удаленный или центральный репозиторий будет содержать изменения и новые ветки, созданные другими разработчиками и отправленные в удаленный репозиторий.
Вполне возможно, что кто-то обновил удаленную копию файлов, которые вы изменили локально на своем компьютере. Если вы случайно выполняете git pull
для обновления своего локального репозитория, вы, вероятно, обнаружите, что обрабатываете слияния для изменений, которые вам, возможно, даже не нужны.
После того, как вы загрузили информацию, вы можете изучить ее и посмотреть, в чем заключаются изменения. Это позволяет вам сделать осознанный выбор в отношении того, что вы хотите объединить прямо сейчас, а что отложить на потом.
Git выборка против вытягивания
Команда git fetch
ведет себя так же, как команда git pull
, но без шага, который перезаписывает ваши локальные файлы. Ваш локальный репозиторий обновляется и синхронизируется, но изменения не записываются в рабочее состояние вашего локального репозитория, поэтому ваши файлы остаются нетронутыми.
Или, другими словами, команда git pull
похожа на git fetch
, за которой сразу же следует git merge
.
Синхронизируйте свои локальные и удаленные репозитории с помощью git fetch
Чтобы получить все обновленные метаданные и коммиты из удаленного репозитория в локальный репозиторий, используйте команду git fetch
с именем или URL-адресом удаленного репозитория. По умолчанию первый удаленный репозиторий называется «исходным».
git получить происхождение
Слово «источник» можно опустить, если вы работаете с одним удаленным репозиторием.
git fetch
Это извлекает все обновления из «исходного» репозитория, но не объединяет изменения в рабочие файлы. Мы видим, что есть новая ветвь, названная «new-branch», которая была получена для нас.
После того, как вы использовали команду fetch
, вы можете увидеть полный список веток на удаленном компьютере, используя опцию -r
(remote) с командой branch.
ветка git -r
Здесь перечислены все ветки, о которых знает удаленный сервер, которые после fetch
также находятся в вашем локальном репозитории.
Просмотреть все извлеченные теги
Точно так же вы можете использовать параметр tag
(обратите внимание, это «тег» без «s»), чтобы увидеть список тегов.
git-тег
СВЯЗАННЫЕ С: Как переключать, добавлять и удалять пульты Git
Сначала делаем пробный прогон
Хотя git fetch
не объединяет изменения в ваши рабочие файлы, он все же обновляет ваш локальный репозиторий. Если вы хотите увидеть, какие изменения выполнит команда fetch
, не внося их на самом деле, используйте параметр --dry-run
.
git fetch --сухой запуск
Как получить одну ветку
Получить информацию об отдельной ветке несложно. Добавьте имя ветки в командную строку, чтобы сообщить fetch
вам нужно знать только об этой одной ветке.
Здесь мы указываем fetch
получить ветку «mary-feature» из удаленного репозитория «origin».
git fetch origin mary-feature
Теперь, когда сведения и содержимое удаленной ветки находятся в вашем локальном репозитории, вы можете использовать команду git checkout
для создания новой ветки и извлечения удаленной ветки. Это не перезапишет существующие файлы, если вы впервые используете эту ветку.
git checkout -b мэри-функция происхождение/мэри-функция
Получить все ветки
Если вы используете несколько пультов, вы можете сэкономить время, перетащив все изменения из всех веток обратно в локальный репозиторий с помощью параметра --all
.
git fetch --все
Сравнение локальных и удаленных ветвей
Чтобы увидеть, чем файлы в удаленной ветке отличаются от ваших локальных копий, используйте git fetch
, а затем используйте команду git log
.
Обратите внимание, что локальная и удаленная ветви разделены двумя точками « ..
». Параметр --oneline
показывает идентификатор коммита и сообщение коммита.
git fetch
git log --oneline mary-feature..origin/mary-feature
Однострочное отображение полезно, если ветвь содержит большое количество изменений. Чтобы увидеть немного больше информации, опустите параметр --oneline
.
git log mary-feature..origin/mary-feature
Это показывает нам время и дату каждой фиксации вместе с сообщением фиксации и контактными данными автора изменения.
Синхронизация локальной ветки с удаленной веткой
Если вы решили, что хотите продолжить и объединить изменения из удаленной ветки с вашими локальными рабочими файлами, вы можете использовать эти команды.
Мы проверим ветку, чтобы убедиться, что мы работаем, это наша текущая рабочая ветка.
git checkout мэри-функция
Ветка проверяется для нас, и нам говорят, что она находится за удаленной версией. Мы можем использовать git pull
для его обновления, а затем git status
для проверки нашего статуса.
git тянуть
статус git
Если мы внесли некоторые изменения в наши локальные файлы, Git сообщает нам, когда мы извлекаем ветку, что нам нужно выполнить git pull
, чтобы начать слияние.
git checkout мэри-функция
Простой git pull
запускает процесс извлечения файлов и слияния, или мы можем погрузиться прямо и использовать сам git merge
. Мы начнем с того, что убедимся, что работаем с правильной веткой
git checkout мэри-функция
Мы скажем git
объединить нашу текущую ветку с веткой в удаленном репозитории, есть шесть разных коммитов, которые необходимо разрешить.
Нам нужно сообщить Git, какую удаленную ветку мы хотим объединить.
git слить происхождение/мэри-функция
Откроется редактор, чтобы мы могли предоставить сообщение фиксации. Мы можем принять предложенное сообщение или добавить свое. Редактор является вашим редактором по умолчанию, если Git не настроен на использование другого редактора.
Сохраните изменения, когда будете готовы продолжить. Слияние происходит автоматически при закрытии редактора.
Наше слияние прошло успешно, потому что не было конфликтов.
Конфликты возникают, когда одни и те же строки кода изменяются двумя или более разработчиками. Если это так, Git помечает конфликты в затронутом файле. Вам нужно будет просмотреть их по очереди и выбрать, какое изменение оставить.
Недоученный щенок
Точно так же, как дрессированный щенок, fetch
то, что вы просите, но не уронит его. Если вы действительно хотите то, что показал вам щенок, вам нужно pull
.
СВЯЗАННЫЕ: Git rebase: все, что вам нужно знать