Добрый день! Подскажите, как сделать так в git чтобы один файл был всегда одинаковым во всех ветках. То есть, например, есть во всех ветках 2 файла. Один файл в во всех ветках разный, а другой должен быть одинаковым для всех. И любое его изменение меняло его во всех ветках.
-
https://stackoverflow.com/q/21459976/4827341 – aleksandr barakin Sep 12 '17 at 19:12
1 Answers
как сделать так в git чтобы один файл был всегда одинаковым во всех ветках
Если кратко, то никак.
Если подробнее, то начнем с небольшой теории.
Ветка в git - это легковесный подвижный указатель на один из этих коммитов. Т.е. каждая ветка указывает на состояние репозитория в определенный момент времени. Если мы имеем 2 ветки (одна получена из другой), то на момент создания 2й ветки они ссылаются на один коммит (= одно состояние репозитория) и все файлы одинаковы. В дальнейшем каждый коммит в одной из веток будет указывать на новое состояние репозитория и другая ветка никакого отношения к нему (этому состоянию) не имеет. Соответственно, каждый исходный файл гарантированно остается одинаковым в обоих ветках только до того момента, когда не будет коммита, затрагивающего этот файл, в любой из веток. После любого изменения этого файла необходимо "синхронизировать" изменения в другую ветку (с помощью git merge).
Кратко подытожим по вашей задаче: изначально оба файла одинаковы в обоих ветках, затем при изменении файла, который вы хотите поддерживать одинаковым во всех ветках, вам нужно переносить изменения самостоятельно.
PS: для чего вы это делаете? Возможно, вам этого и не требуется) Иначе вы пытаетесь бороться с помощью git-а с его же функционалом (с версионностью файлов)
- 3,312
-
Спасибо за ответ. Нужно это как раз для примера. У нас есть набор конфигураций. конфигурация для каждого сервера меняется в одном файле. А во втором файле грубо говоря некий код который использует первый файл для применения конфигурации. Каждая группа серверов использует отдельную ветку. Время от времени файл номер два совершенствуется. Возможно нужно что-то поменять идеологически. Но на первый взгляд хотелось бы просто скачать на сервер файлы репозитория и сразу чтобы была готовая конфигурация. – Сергей Давыдов Sep 13 '17 at 06:39
-
Идея понятна. Видимо, все таки вам придется мержить изменения в каждую ветку вручную. – Nikolai Sep 13 '17 at 06:51