Git, связанный с коммитами в филиалах

184
Anders

У меня есть быстрый вопрос относительно git коммитов и веток.

Скажи, что я хочу получить два идентификатора коммита на основе двух дат.

Я делаю рев на «Мастер ветке».

git rev-list --since='2015-01-01' --reverse origin/master | head -1 git rev-list --until='2015-06-30' origin/master | head -1 

Теперь, если я переключаю ветку, IE я делаю:

git checkout testing 

я получу только идентификатор коммита из ветки тестирования, или я также получу идентификатор коммита из всех других веток, включая ветку master?

Простое да нет, я хочу быть уверенным, что я не получаю никаких коммитов из ветки master, так что я получаю код только из коммитов в тестовой ветке, а не код из любой другой ветки.

Заранее спасибо.

0

1 ответ на вопрос

1
ge0rdi

Из документации для git rev-list:

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

Не имеет значения, какую ветку вы проверили. Вы должны указать ответвление (или целевой коммит в целом) в качестве параметра rev-listкоманды.

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

git rev-list --since='2015-01-01' --reverse testing | head -1 git rev-list --until='2015-06-30' testing | head -1