2013-07-28 2 views
0

У меня есть проекты с несколькими версиями, каждый из которых, очевидно, работает на собственной ветке git. В проекте есть отслеживаемый файл конфигурации (приложение app.yaml для google app engine), которое, помимо прочего, содержит имя версии.Как предотвратить git от отслеживания одной строки?

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

есть ли разумный способ так так?

ответ

1

Да, есть способ сделать это. Git поддерживает custom merge drivers для таких случаев.

В вашем драйвере слияния вы должны проверить все три версии файла и удалить строку, о которой идет речь, во всех из них. Затем запустите git merge-file на результат. Некоторые указатели также могут быть найдены в git merge-one-file helper. Когда вы закончите, перечитайте строку из версии ours в свой результат.

Если вы действительно хотите not track, что линия, вы можете использовать smudge and clean filters для этого. Но я не думаю, что это то, что вы хотите.

2

Краткий ответ: No.

Ответ получен: git в Великобритании Английский означает неприятный или знатный человек.

Фактический ответ:

Git был разработан для отслеживания изменений в ваших проектах/хранилище, а не отдельные файлы.

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

Я не думаю, что есть какой-либо способ сделать это (что было бы придумано разумно).

PS: Ответ может быть оскорбительным для некоторых, но идеология git заключалась в том, чтобы «не« заставить людей работать над движением отдельных файлов ».

Единственное, что вы можете сделать, это создать разницу между ветвями и полностью игнорировать конкретный файл при создании/слиянии патчей. Не знаю, действительно ли это применимо/полезно.

Другим решением, которое вы можете попробовать это: "Merge" Specific Files from Another Branch

+0

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

+0

Я не знаю о «app.yaml» для google app engine, но проблема возникает в том же виде, когда есть релиз и, например, примечания к выпуску обновляются.решение/обходной путь, который я видел, это то, что эти изменения идут в одном отдельном коммите, а слияние выполняется с фиксацией, предшествующей фиксации релиза, при реинтеграции изменений в master. – mnagel

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