2010-10-19 2 views
1

Я пытаюсь использовать git как нечто, для чего это не было сделано - базу данных. Пожалуйста, не стесняйтесь сказать мне, что это глупая идея.Git, роботы и расходящиеся ветки

Настройка

Одна ветвь (назовем его robot) обновляется автоматически с помощью сценария на ежедневной основе. Данные поступают из какой-либо другой общедоступной базы данных.

Первоначально филиал master - это то же самое, что и филиал robot.

Некоторые данные в общедоступной базе данных неверны, поэтому я сделаю фиксацию на ветке master и исправлю ошибку.

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

Отслеживая различия

Теперь я, очевидно, потерял способность делать быстро вперед сливаться, если я изменил тот же файл. Но я все еще мог вишневым выбрать хорошие изменения в ветке robot и импортировать их в ветку master. Проблема в том, что через некоторое время это может стать довольно беспорядочным, когда почти все файлы расходятся.

Как я могу систематически отслеживать разницу между различными ветвями?

ответ

2

Похоже, что вы ищете команду git rebase. Эта команда позволяет обновлять изменения, внесенные в master ветви на вершине нового главы robot филиала:

git checkout master 
git rebase robot 

Там могут быть конфликты, если база данных была обновлена ​​с изменением к чему-то вы 'изменено в master. Вы должны разрешить эти конфликты вручную.

+0

Я думаю, что вы правы ;-) * playingaroundwithit * – hanno

+0

Единственная проблема в том, что людям это не понравится, когда я делаю это на удаленной ветке. – hanno

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