2012-05-29 5 views
1

У меня есть git-хранилище на моей машине «DEV». Некоторое время назад я скопировал код на свою машину PROD. С тех пор в моей машине DEV было много коммитов. Однако на моей машине PROD, которая никогда не была выполнена или «выгравирована», возможно, было несколько изменений кода ad-hock.Как мне сопоставить код с Git commit и создать ветку?

Вопрос: Как найти коммит на DEV, который ближе всего к коду PROD?

Тогда я создам ветку и солью. Цель состоит в том, чтобы объединить все в одну ветвь. В PROD есть много файлов, которые никогда не были изменены, поэтому, возможно, это будет проще, просто выполните поиск всех коммитов для точного соответствия.

Я использую git-расширения.

ty.

ответ

1

Один из вариантов заключается в использовании git bisect для поиска по вашим старым записям, на каждом шаге с помощью инструмента сравнения diff для сравнения рабочего каталога git с PROD. Если рабочий каталог имеет новые изменения с тех пор, как PROD вы хотите сохранить, отметьте его good. Если рабочий каталог имеет старые версии файлов и вам нужна версия PROD, отметьте его bad. В конце концов вы должны найти фиксацию, которая ближе всего к тому, где PROD запускается - создайте ветку оттуда, скопируйте ее из PROD, и вам хорошо идти.

0

Без дополнительной информации (и если ваша установка PROD-машины не является git-репозиторием, что сделало бы это довольно простым), я бы, вероятно, просто сравнил временные метки создания файлов с историей фиксации DEV repo. Предположительно, ваш код PROD-машины был скопирован в узком окне. Вероятно также, что вы не совершали пока вы делали эту копию. Просто используйте git log найти время фиксации прямо перед копией временной метки, а затем что-то вроде:

git checkout -B new_branch <hash_of_that_commit> # Checks out 'new_branch' at that commit 

Далее дифф DEV и PROD, копирование PROD изменяется обратно на DEV либо ступенчато или в пакетном режиме. Зафиксируйте каждый шаг или пакет.

В этот момент у вас есть жизнеспособная ветка темы. Вы можете объединить или переустановить его обратно в свою основную ветку на досуге.

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

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