Git: Получение файла из другой ветки

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

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

Как получить файл из другого филиала?

Сначала давайте определим ситуацию, в которой возникает эта проблема:

Вы работаете в ветке под названием migration, в этой ветке у вас есть файл src/migration-tools/.

В другой ветке, назовем ее features, была проделана другая работа, но она не была синхронизирована с изменениями, которые находятся в migration.

Теперь ваша очередь работать над веткой features, поэтому вы создаете новую ветку оттуда и понимаете, что вам нужны некоторые из migration-tools.

Чем вы занимаетесь?

  • Открываете ли вы хранилище в браузере и копируете и вставляете нужный вам скрипт?

  • Начинаете ли вы создавать pull-запросы и объединять различные ветви, чтобы получить доступ к этим файлам?

На мой взгляд, ничего из вышеперечисленного, решение таково: «Принесите весь каталог в ваш филиал».

Вот 3 возможных способа решения этой проблемы.

Git checkout

Команда git checkout позволяет легко получить файл или каталог из другой ветки, просто следуйте этому синтаксису для ее выполнения.


$ git checkout <el-otro-branch> -- path/a/tu/archivo

Войдите в полноэкранный режим Выход из полноэкранного режима

Чтобы решить эту проблему, нужно сделать следующее:


$ git checkout features  

$ git checkout -b features-work-in-progress

$ git checkout migration -- src/migration-tools

Войдите в полноэкранный режим Выход из полноэкранного режима

То есть, сначала убедитесь, что вы находитесь в правильной ветке, затем создайте ветку для работы над features-work-in-progress и затем получите копию каталога.

Git restore и git switch

Возможно, вы не совсем знакомы с git switch, потому что это относительно новая команда, добавленная в git.

switch — это упрощение команды checkout, которая в данном случае просто позволяет вам переключать ветви (или, более конкретно, переключать текущий HEAD).

Как они работают вместе, чтобы получить файл или каталог из другой ветви?

Сначала вы переключаетесь на ветку, над которой хотите работать, и «добавляете» новый файл или каталог.

git switch features-work-in-progress

Затем вы получаете каталог из другого филиала.

git restore --source migration -- src/migration-tools

Наконец, сохраните изменения commit и обновите репозиторий push.

Git show

Последний вариант — использовать git show. Эта команда позволяет «увидеть» различные типы объектов в хранилище.

Процесс будет выглядеть следующим образом:

Переход в филиал, в котором вы будете работать

git switch features-work-in-progress

Затем вы получаете каталог из другого филиала.

git show migration:./src/migration-tools > ./src/migration-tools

Вот и все, теперь вы можете push в свою ветку.

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


✉️ Присоединяйтесь к Micro-bytes 🐦 Следите за мной в Twitter ❤️ Поддержите мою работу

Оцените статью
devanswers.ru
Добавить комментарий