Git объединить один файл без перебазирования - PullRequest
7 голосов
/ 22 марта 2012

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

На данный момент, однако, я бы хотел вывести Makefile из тестирования в функцию, так как функция была отделена от master, а Makefile был добавлен в тестирование. Однако я не хочу объединить любые другие изменения между двумя ветвями.

Насколько я понимаю, если я просто добавлю Makefile в git-файл, это вызовет конфликты слияния, когда я вернусь к тестированию (а затем к master-файлу), особенно если я сделаю какие-либо дополнительные дополнения к Makefile в моей ветви Feature.

Я мог бы сделать мерзавец; однако, при тестировании было несколько коммитов в Makefile, и я предполагаю, что есть лучший способ, чем попытка выбрать все эти коммиты в функцию.

1 Ответ

12 голосов
/ 22 марта 2012

Вы можете просто сделать

git checkout branch_name <path(s)>

Это может загрузить определенный файл, но вы также можете использовать подстановочные знаки и каталоги

Обратите внимание:

  • Пути относительно
  • Путь делает Git не переключать ветки, так что вы можете просто зафиксировать после получения файла
...