Git удаленный журнал и запрос на изменения - PullRequest
4 голосов
/ 27 ноября 2010

Мне нужно получать данные о ревизиях, изменениях файлов и количестве измененных строк кода без клонирования репо, единственное, что у меня есть, - это URL репо. Единственная команда, которую я нашел для просмотра удаленных изменений - это git ls remote , но ее вывод слишком плохой. Как я могу это сделать?

Ответы [ 3 ]

6 голосов
/ 27 ноября 2010

Невозможно выполнить то, что вы просили, используя только протоколы Git.

В зависимости от того, как размещен репозиторий, вы можете получить некоторую информацию через веб-интерфейс . gitweb распространяется с Git, и крупные хостинговые службы часто имеют свои собственные веб-интерфейсы.


  • пример gitweb: git.git при просмотре коммит с тегом 1.7.3.2
    • top links
      • «log» или «shortlog» показывает историю, ведущую к фиксации
      • «commitdiff» для доступа к diff-файлам против родителя (ей)
      • сокращенное имя объекта слияния / родителя (шестнадцатеричная строка) перемещается к этому родителю
    • ссылки на родителя
      • ссылка "diff" показывает разницу с этим родителем
      • ссылка «коммит» перемещается к этому родительскому элементу
    • ссылка «дерево» показывает файлы, захваченные при фиксации
    • ссылки на файл
      • «diff» («diffN» для слияний) показывает разность только этого файла
      • «blob» показывает содержимое файла
      • «history» показывает коммиты, ведущие ктекущий коммит, который изменяет этот файл

  • Пример GitHub: git.git просматривает коммит с тегом 1.7.3.2
    • На вкладке «Commits» отображается история
      • «commit» / «parent» сокращенноимя объекта (шестнадцатеричная строка) приводит вас к коммиту;он показывает
        • файлы, которые были изменены для этого коммита
          • зеленые и красные квадраты справа показывают количество строк, добавленных / удаленных в каждом файле
        • Различия для коммита
          • «Просмотр файла» показывает весь файл, как он был захвачен в этом коммите
            • «сырой» просмотр / загрузка файла
            • «вина”Показывает самый последний коммит для изменения каждой строки этого файла
            • « история »показывает коммиты, ведущие к текущему коммиту, который изменил этот файл

Если вы собираетесь делать какие-либо значительные исследования в истории, вероятно, будет клонировать репозиторий (искорее всего, это будет only , если у хостинг-сервиса нет какого-либо веб-интерфейса).Вам придется использовать некоторое дисковое пространство, но ваше исследование не будет ограничиваться веб-интерфейсом, и это будет намного быстрее.

Еще одна возможность - git archive ;это необязательный сервер, поэтому он не может быть включен для сервера, на котором размещен ваш репозиторий.Это позволяет загружать архивы (например, файлы tar или zip) отдельных деревьев.Технически, вы могли бы извлечь такие архивы и вручную отразить их, чтобы получить нужную вам информацию, но это, вероятно, было бы более громоздким и менее эффективным, чем простое клонирование хранилища и использование обычных инструментов (например, git log с --stat или --numstat с или без -m / -c / --cc).

2 голосов
/ 03 июня 2012

Если ваш URL-адрес хранилища предназначен для соединения типа ssh, вы можете выполнить команду удаленного журнала через ssh, например,

Если вы могли бы клонировать, используя команду:

git clone username@host:/path/to/repository.git

ТогдаВы должны быть в состоянии выполнить команду журнала, используя:

ssh username@host git --git-dir /path/to/repository.git log
1 голос
/ 27 ноября 2010

Если у вас есть доступ к серверу, вы можете запустить git log локально на сервере, проанализировать данные и отправить обратно агрегированный результат.

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