2011-03-14 2 views
2

Я занимаюсь частной (одинокой) разработкой веб-сайта на git-репо с мастером и веткой развития. Я проделал определенную работу над подразделением dev, сосредоточив внимание на некоторых «больших» функциях и проблемах, и, честно говоря, фиксации в ветви dev не были демонстрацией для атомных коммитов. Это закончено (в нескольких больших различиях), но теперь некоторые основные функции перестали работать. Причины, по которым он прекратил работать, могут быть многочисленными, разница между мастером и ветвью состоит из многочисленных изменений в некоторых файлах.git merge по частям

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

Есть ли простой способ понять это с помощью GIT? Я также открыт для других альтернатив. Моя предпочтительная IDE - emacs, но снова я открыт для доступных альтернатив.

приветствие, Jeroen.

ответ

3

git-bisect предназначен для решения этой проблемы.

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

+0

Да, это выглядит действительно многообещающе! Благодаря! Я начинаю больше нравиться git! –

+0

Теперь найдите способ разделить мои большие коммиты на более мелкие куски –

+0

[git-cherry-pick] (http://www.kernel.org/pub/software/scm/git/docs/git-cherry-pick.html) поможет вам разделить плохую фиксацию. – rmmh

2

Вы можете использовать git-rebase -i для интерактивного разделения ваших негабаритных коммитов. Эта страница описывает эту точную ситуацию.