2016-05-27 5 views
4

У меня есть два файла под названием vvn.c и aqu.c Я сделал изменения в vvn.c, и у меня есть это сообщение в моем git. Как вишнево выбрать те же изменения, что и aqu.c Единственное отличие - это API.Как чередовать выбор из одного файла в другой файл?

vvn.c содержит API, как vvn_function_names()

тогда aqu.c содержит API, а unions_function_names()

я не знаю, как сделать это. Я знаю о вишневом забивании в тот же файл. Есть ли способ сделать это?

+0

https://stackoverflow.com/a/16527024/702456 действительно ответ, который вы, вероятно, хотели. Если кто-то еще окажется здесь, следует упомянуть –

ответ

3

Не совсем вишневый выбора, но вы можете использовать:

git checkout <branch or sha of commit> -- filename

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

Другая возможность - создать diff (вы можете генерировать diff от диапазон коммиттов и ограничивает его одним файлом), а затем применить diff. Выезд: How to diff the same file between two different commits on the same branch?

+0

Можете ли вы привести пример о первом.? – AQU

+0

В вашем случае это будет выглядеть как: 'git checkout branch-witch-aqu-changes - aqu.c' –

+0

Хмм. У меня есть оба файла в одной ветке. 'vvn.c' и' aqu.c' находятся в разных каталогах. Итак, как проверить сейчас? – AQU

3

В основном вам необходимо внести изменения в vvn.c и применить их к aqu.c. См. здесь: How to apply a Git patch to a file with a different name and path?

Однако это довольно сложная вещь. Почему у вас разные имена файлов, которые так или иначе похожи, чтобы вы вносили одинаковые изменения?

Возможно, лучше придумать какой-то другой подход. Например. для C вы можете использовать #include и извлечь общую часть в отдельный файл.

 Смежные вопросы

  • Нет связанных вопросов^_^