git log origin / development выдает «фатальный: неоднозначный аргумент»

#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> напрямую — смотрите Мой отредактированный ответ