#git #git-log
#git #git-log
Вопрос:
Контекст: Я создаю инструмент для анализа различий между двумя ветвями. Я хотел бы посмотреть историю коммитов на origin/develop
и origin/release
. Поскольку мне нужна только история, я клонировал проект только с историей ( git clone --bare
)
После git fetch
я хотел бы видеть последние коммиты при выпуске и разработке без необходимости git merge origin/develop|release
в каждой ветке. Итак, я попытался просто git log origin/develop [... format options]
.
В некоторых проектах это работает так, как ожидалось. Но в конкретном проекте я получаю эту ошибку :
$ git log origin/develop master * ] 11:01
fatal: ambiguous argument 'origin/develop': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Если я попытаюсь git remote -v
, я увижу, что origin
это определено правильно. Как origin/develop
может быть недопустимой ревизия?
Ответ №1:
Процитируем документацию по --bare
флагу:
Также удаленные заголовки ветвей копируются непосредственно в соответствующие локальные заголовки ветвей, без сопоставления их с
refs/remotes/origin
Эта git log
опция работала бы, если репозиторий был клонирован без --bare
флага.
РЕДАКТИРОВАТЬ: Чтобы ответить на вопрос в комментариях, это также означает, что вы можете вызывать git log <branchname>
напрямую, не обращаясь к origin/<branchname>
. Т.е. в вашем случае:
git log develop
Комментарии:
1. хорошо, это отвечает на вопрос, спасибо. Я приму это, как только смогу, но задержка составляет 5 минут. Есть ли у вас какие-либо идеи, как я мог бы отслеживать origin / develop без необходимости клонировать весь проект? Мне кажется, что это должно быть возможно.
2. @ArnaudDenoyelle Вы можете позвонить
git log <branchname>
напрямую — смотрите Мой отредактированный ответ