Список Git commit SHA из определенной ветки без клонирования хранилища - PullRequest
0 голосов
/ 08 апреля 2019

Есть ли способ получить все идентификаторы коммитов для конкретной ветви без клонирования репозитория или использования API?

Я ищу что-то подобное.К сожалению, приведенная ниже команда работает только в репозитории (то есть в каталоге git).Я хочу сделать это без клонирования репозитория.

git rev-list --remotes=*master 

Например, приведенная ниже команда возвращает все ветви и последний идентификатор фиксации ( Примечание: команда работает безклонировать репо.)

git ls-remote -h http://user:password@example.gitlab.com/ProjectA/example.git 

Пример вывода:

82cd0dcc9d1005b44bdc799034b706f9ad2b1e0e    refs/heads/master
afacc961fedf49a84c09ab91e67633b02921dd07    refs/heads/projects/myproject
b6d954ec86750dcfd35c1c3fba4f40449abeb6ed    refs/heads/releases/production
e891a0b29847d0d7dfc5bc7e5ad45f718918f67f    refs/heads/releases/ready_for_prod
7b0282004a6f72c5803ddf19172c16a0b3124038    refs/heads/releases/test

Ответы [ 3 ]

2 голосов
/ 08 апреля 2019

Это невозможно при использовании обычных команд Git, но вы пометили свой вопрос обоими и , оба из которых имеют API, позволяющие вам это делать:

  • GitHub : GET /repos/:owner/:repo/commits и укажите параметр sha, содержащий имя ветви, коммиты которой вы хотите перечислить
  • GitLab : GET /projects/:id/repository/commits и укажите параметр ref_name, содержащий имя ветви, коммиты которой вы хотите перечислить

Возможно, вам придется использовать GitLab Enterprise Edition, чтобы использовать его API.(Версия, размещенная на GitLab.com, должна поддерживать ее.)

0 голосов
/ 08 апреля 2019

Чтобы получить запрашиваемый вывод, формат for-each-ref будет проще отформатировать:

git for-each-ref --format="%(objectname) %(refname)" refs/heads/
0 голосов
/ 08 апреля 2019

Да, чтобы взаимодействовать с хранилищем, вам сначала нужно его клонировать.

После клонирования выполните:

git rev-list branch/name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...