Как ступить через репозиторий мерзавца?

Я пытаюсь понять проект, он помогает посмотреть на свою эволюцию при помощи gitk. То, что я делаю, является контролем первая фиксация, поймите код, запустите тесты, перейдите к следующей фиксации и повторению. Мой текущий рабочий процесс является к контролю фиксацией через свой хеш

git checkout 79cd6

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

git checkout -b <newbranch> <first commit id of master>
git <command to move head of current branch to next commit of master>
8
задан igorw 21 July 2010 в 11:32
поделиться

2 ответа

Вы можете написать небольшой сценарий оболочки. Один сценарий будет запускать журнал git --pretty=oneline | awk '{печать $1;}' . Второй скрипт (назовем его step или что-то в этом роде) будет использовать head, tail, wc -l. Затем прочитайте последнюю строку файла с помощью tail, узнайте, сколько строк в файле, и удалите последнюю строку из файла. Уродливо, конечно, но это сделает свою работу. :) (Если вы хотите быть немного менее уродливым, он может использовать truncate(1), чтобы просто отрезать последнюю строку файла, а не всегда создавать новые временные файлы.)

0
ответ дан 5 December 2019 в 17:33
поделиться

Сохраните это как ~ / bin / git-next или где-нибудь еще на вашем пути:

#!/bin/bash
git co $(git rev-list --children --all | awk "/^$(git rev-parse @\{0})/ { print \$2; }")

Это будет проверять первый дочерний элемент текущей ревизии.

Это будет очень медленным на большом репо, но он выполнит свою работу.

Вы можете изменить это, чтобы обрабатывать ветвление по мере необходимости.

2
ответ дан 5 December 2019 в 17:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: