Половозврат к мастеру и проверка изменений - PullRequest
0 голосов
/ 09 февраля 2019

Есть ли хороший способ легко проверить, чем мой текущий проект отличается от основной ветки?Я хотел бы как-то вытянуть мастер и «разрешить конфликты» еще раз, чтобы дважды проверить сделанные мной изменения.

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

Редактировать: я, вероятно, должен отметить, что 99% материала, который яВы сделали в отдельных файлах, которые не будут конфликтовать слияния - так что это не так просто, как просто просмотреть изменения версии, которые я сделал.Мне нужно найти тот 1% кода, который связывает мой код с основным проектом.

1 Ответ

0 голосов
/ 09 февраля 2019

Для удобства я бы предложил здесь использовать команду bisect.

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

В основном, он использует принцип поиска по дихотомии, проверяя фиксацию между двумя точками времени (в вашем случае, междутеперь и точка, в которой вы отошли от мастера), позволяя вам запускать любые необходимые вам тесты, а затем ждать, пока вы не решите считать коммит «плохим» (если ваша ошибка присутствует в этой точке временной шкалы) или «хорошим»"(если ошибка еще не покажет ).Затем он повторяет процесс, итеративно, пока вы не найдете фиксацию, вызвавшую проблему.

# to start the search
git bisect start

# to tag the present commit as "good"
git bisect good
# to tag the present commit as "bad"
git bisect bad

# to exit bisect mode and return to just before "bisect start"
git bisect reset 

( tag , используемый здесь в разговорном смысле, конечно, настоящий git-тег здесь не используется, ни легкий, ни аннотированный)

Взгляните на doc (некоторые другие подкоманды bisect удобны, как bisect log), сделайте глубокий вдох, захватите фаруи пойти на это.

...