git количество строк кода в проекте
Количество строк в репозитории git
Как подсчитать общее количество строк во всех файлах в репозитории git?
git ls-files дает мне список файлов, отслеживаемых git.
Я ищу команду для cat всех этих файлов. Что-то вроде
ОТВЕТЫ
Ответ 1
xargs сделает то, что вы хотите:
Но с большей информацией и, вероятно, лучше, вы можете сделать:
Ответ 2
Это показывает различия между пустым деревом и текущим рабочим деревом. Что происходит, чтобы подсчитать все строки в текущем рабочем дереве.
Ответ 3
Если вы хотите этот счет, потому что хотите получить представление о области проектов, вы можете предпочесть вывод CLOC ( «Count Lines of Code» ), который дает вам разбивку значимых и незначительных строк кода на языке.
Ответ 4
Или, если вы хотите просмотреть только некоторые файлы, например. код:
Ответ 5
Лучшее решение, мне все равно, похоронено в комментариях @emhemient ответа. Я просто потянул его сюда, чтобы он не остался незамеченным. Для этого нужно перейти к @FRoZeN (и @ephemient).
Команда выше работает в Linux и OS X. Кросс-платформенная версия этого файла
Это тоже работает в Windows.
Для записи опции для исключения пустых строк
Ответ 6
Так вот что я сейчас использую:
Ответ 7
Этот инструмент в github https://github.com/flosse/sloc может дать результат более наглядным образом. Он будет создавать статистику вашего исходного кода:
Ответ 8
Я использую следующее:
Ответ 9
Это работает как cloc 1.68:
Ответ 10
это работает, если вы считаете все текстовые файлы в репозитории как файлы, представляющие интерес. Если некоторые из них считаются документацией и т.д., Может быть добавлен фильтр исключения.
Подсчитать количество строк в репозитории git
Как бы подсчитать общее количество строк, присутствующих во всех файлах в репозитории git?
git ls-files дает мне список файлов, отслеживаемых git.
Я ищу команду для cat всех этих файлов. Что-то вроде
xargs будет делать то, что вы хотите:
Но с большей информацией и, возможно, лучше, вы можете сделать:
Это показывает отличия от пустого дерева до вашего текущего рабочего дерева. Что происходит для подсчета всех строк в вашем текущем рабочем дереве.
Чтобы получить числа в вашем текущем рабочем дереве, сделайте это:
Если вам нужен этот счет, потому что вы хотите получить представление о масштабах проекта, вы можете предпочесть вывод CLOC («Количество строк кода»), который дает вам разбивку значимых и незначительных строк кода по языку.
Отвечая на вопрос, почему утилита wc генерирует несколько строк с «total»? Я нашел следующую команду, чтобы обойти проблему:
Или, если вы хотите просмотреть только некоторые файлы, например, код:
Команда выше работает на Linux и OS X. Кроссплатформенная версия этого
Это работает и в Windows.
Для записи, варианты исключения пустых строк,
Это работает с часов 1.68:
Вот что я сейчас использую:
Я использую следующее:
это работает, если вы считаете все текстовые файлы в хранилище интересующими вас файлами. Если некоторые из них считаются документацией и т. Д., Можно добавить фильтр исключения.
Этот инструмент на github https://github.com/flosse/sloc может дать вывод более информативным способом. Это создаст статистику вашего исходного кода:
на каталог / рассматриваемые каталоги
В зависимости от того, хотите ли вы включить двоичные файлы, есть два решения.
Можете ли вы получить количество строк кода из репозитория GitHub?
В репозитории GitHub вы можете увидеть «статистику языка», которая отображает процент проекта, написанного на языке. Однако он не отображает количество строк кода, из которых состоит проект. Часто я хочу быстро получить представление о масштабе и сложности проекта, а количество строк кода может дать хорошее первое впечатление. 500 строк кода подразумевают относительно простой проект, 100 000 строк кода подразумевают очень большой/сложный проект.
Итак, возможно ли получить строки кода, написанные на разных языках, из репозитория GitHub, желательно без его клонирования?
Вопрос » Подсчитать количество строк в репозитории git » спрашивает, как посчитать строки кода в локальном репозитории Git, но:
В общем, это потенциально слишком много времени для «быстрой проверки масштаба проекта».
ОТВЕТЫ
Ответ 1
Сценарий оболочки, cloc-git
Вы можете использовать этот сценарий оболочки для подсчета количества строк в удаленном Git-репозитории с помощью одной команды:
Installation
ИспользованиеСценарий принимает один аргумент, то есть любой URL, который git clone примет. Примерами являются https://github.com/evalEmpire/perl5i.git (HTTPS) или [email protected]:evalEmpire/perl5i.git (SSH). Вы можете получить этот URL на любой странице проекта GitHub, нажав «Клонировать или скачать».
Альтернативы
Запустите команды вручную
Если вы не хотите сохранять и устанавливать скрипт оболочки, вы можете запускать команды вручную. Пример:
Лингвист
Ответ 2
Вы можете просто запустить что-то вроде
который даст вам общее количество →
Ответ 3
Подсчитывает количество строк кода проекта из:
Ответ 4
Если вы перейдете на страницу графиков/вкладчиков, вы увидите список всех участников репо и количество строк, которые они добавили и удалили.
Если я что-то не хватает, вычитание совокупного количества строк, удаленных из совокупного количества строк, добавленных среди всех участников, должно давать общее количество строк кода в репо. (EDIT: оказалось, что я что-то пропустил. Посмотрите комментарий orbitbot для деталей.)
Эти данные также доступны в GitHub API. Поэтому я написал быстрый script для получения данных и расчета:
Ответ 5
Хотя возьмите это с солью, этот проект включает YAML и JSON, которые веб-сайт подтверждает, но API не делает.
Ответ 6
В настоящее время невозможно использовать Github.com или их API-интерфейс
Я поговорил с поддержкой клиентов и подтвердил, что это невозможно сделать на github.com. Они передали это предложение вместе с командой Гитуба, поэтому, надеюсь, это будет возможно в будущем. Если это так, я обязательно отредактирую этот ответ.
Ответ 7
Вы можете использовать API GitHub, чтобы получить sloc как следующую функцию
Лично я сделал расширение chrome, которое показывает количество SLOC как в списке проектов github, так и на странице проекта. Вы также можете установить свой токен доступа для доступа к частным репозиториям и обходить ограничение скорости api.
Ответ 8
Расширение Firefox Github SLOC
Я написал небольшой аддон firefox, который печатает количество строк кода на страницах проекта github: Github SLOC
Ответ 9
Если возникает вопрос: «можете ли вы быстро получить ЧИСЛО ЛИНИИ репозитория github», ответ не соответствует другим ответам.
Однако, если вопрос заключается в «можно быстро проверить SCALE проекта», я обычно оцениваю проект, глядя на его размер. Конечно, размер будет включать дельта из всех активных коммитов, но это хорошая метрика, поскольку порядок величины довольно близко.
Насколько велик проект «докер»?
В вашем браузере введите api.github.com/repos/ORG_NAME/PROJECT_NAME то есть api.github.com/repos/docker/docker
В хэше ответа вы можете найти атрибут size:
Ответ 10
Инструкции и пояснения
Как подсчитать общее количество строк, измененных конкретным автором в репозитории Git?
есть ли команда, которую я могу вызвать, которая будет считать строки, измененные конкретным автором в репозитории Git? Я знаю, что должны быть способы подсчета количества коммитов, поскольку Github делает это для своего графика воздействия.
21 ответов:
вывод следующей команды должен быть достаточно легко отправить в скрипт, чтобы сложить итоги:
это дает некоторую статистику об авторе, изменить по мере необходимости.
использование Awk на Mac OSX:
EDIT (2017)
на github есть новый пакет, который выглядит гладким и использует bash в качестве зависимостей (протестирован на linux). Это больше подходит для прямого использования, а не Скрипты.
скопировать git-quick-stats в папку и добавить путь к папке.
в случае, если кто-то хочет посмотреть статистика каждый пользователь в своей кодовой базе, несколько моих коллег недавно придумали этот ужасный однострочный:
(требуется несколько минут, чтобы пробить наше РЕПО, которое имеет около 10-15k коммитов.)
это хороший инструмент, чтобы получить количество для всех авторов сразу, в том числе фиксации и измененных файлов count:
существует также версия Python в https://github.com/casperdcl/git-fame (упоминается @fracz):
но имейте в виду: как упоминал Джаред в комментарии, делать это на очень большой хранилище займет несколько часов. Не уверен, что это может быть улучшено, хотя, учитывая, что он должен обрабатывать так много данных Git.
Я нашел следующее полезным, чтобы увидеть, у кого было больше строк, которые в настоящее время находятся в базе кода:
другие ответы в основном сосредоточены на линиях, измененных в коммитах, но если коммиты не сохраняются и перезаписываются, они могут просто быть отточены. Приведенное выше заклинание также позволяет вам сортировать всех коммиттеров по строкам, а не только по одному за раз. Вы можете добавить некоторые параметры в git blame (- C-M), чтобы получить некоторые лучшие числа, которые принимают движение файла и строку перемещение между файлами учитывается, но команда может выполняться намного дольше, если вы это сделаете.
кроме того, если вы ищете строки, измененные во всех коммитах для всех коммиттеров, следующий небольшой скрипт полезен:
после Алекс и Gerty3000ответ, я попытался сократить один лайнер:
в основном, используя git log numstat и не отслеживание количества файлы изменен.
Git версия 2.1.0 на Mac OSX:
на ответ С AaronM использование оболочки one-liner хорошо, но на самом деле есть еще одна ошибка, когда пробелы будут повреждать имена пользователей, если между именем пользователя и датой есть разные пробелы. Поврежденные имена пользователей будут давать несколько строк для подсчета пользователей, и вы должны суммировать их самостоятельно.
Это небольшое изменение исправило проблему для меня:
обратите внимание на + после \s, который будет потреблять все пробелы от имени до даты.
на самом деле добавление этого ответа столько же для моей собственной памяти, сколько для помощи кому-либо еще, так как это, по крайней мере, второй раз, когда я google тему 🙂
@mmrobins @AaronM @ErikZ @JamesMishra предоставил варианты, которые имеют общую проблему: они просят git создать смесь информации, не предназначенную для потребления скрипта, включая содержимое строки из репозитория в той же строке, а затем сопоставить беспорядок с регулярным выражением.
это проблема, когда некоторые строки не являются допустимым текстом UTF-8, а также когда некоторые строки совпадают с регулярным выражением (это произошло здесь).
вот модифицированная строка, которая не имеет этих проблем. Он запрашивает git для вывода данных чисто на отдельных строках, что позволяет легко фильтровать то, что мы хотим надежно:
вы можете grep для других строк, таких как author-mail, committer и т. д.
может, сначала сделать export LC_ALL=C (если bash ) для принудительной обработки на уровне байтов (это также значительно ускоряет grep из локалей на основе UTF-8).
вот краткий сценарий, который создает статистику для всех авторов. Это намного быстрее, чем решение Дэна выше вhttps://stackoverflow.com/a/20414465/1102119 (Мой имеет временную сложность O(N) вместо O (NM), где N-количество коммитов, а M-количество авторов).
решение было дано с ruby в середине, perl был немного более доступен по умолчанию вот альтернатива с использованием perl для текущих строк автором.
чтобы проиллюстрировать, вот a commit С большим количеством файлов перемещается из одного из моих проектов, при использовании :
вот быстрый скрипт ruby, который загоняет влияние на пользователя против данного запроса журнала.
Я предоставил модификацию короткого ответа выше, но этого было недостаточно для моих нужд. Мне нужно было иметь возможность классифицировать как зафиксированные строки, так и строки в окончательном коде. Я также хотел разбить по файлам. Этот код не возвращается, он будет возвращать только результаты для одного каталога, но это хорошее начало, если кто-то хотел идти дальше. Скопируйте и вставьте в файл и сделайте исполняемый файл или запустите его с помощью Perl.
Это лучший способ, и это также дает вам четкое представление об общем количестве коммитов всех пользователей
Как подсчитать общее количество строк, измененных конкретным автором в репозитории Git?
есть ли команда, которую я могу вызвать, которая будет считать строки, измененные конкретным автором в репозитории Git? Я знаю, что должны быть способы подсчета количества коммитов, поскольку Github делает это для их графика воздействия.
21 ответов
вывод следующей команды должен быть достаточно простым для отправки скрипту, чтобы сложить итоги:
это дает некоторую статистику об авторе, изменить по мере необходимости.
использование Awk на Mac OSX:
изменить (2017)
на github есть новый пакет, который выглядит гладким и использует bash в качестве зависимостей (протестирован на linux). Он больше подходит для прямого использования, а не для скриптов.
скопировать git-quick-stats в папку и добавить папка в путь.
в случае, если кто-то хочет посмотреть статистика каждый пользователь в своей кодовой базе, пара моих коллег недавно придумали этот ужасный однострочный:
(требуется несколько минут, чтобы пройти через наше РЕПО, которое имеет около 10-15k коммитов.)
это хороший инструмент, чтобы получить количество для всех авторов сразу, включая фиксацию и количество измененных файлов:
существует также версия Python в https://github.com/casperdcl/git-fame (упоминается @fracz):
но будьте осторожны: как упоминал Джаред в комментарии, делая это на очень большом хранилище займет несколько часов. Не уверен, что это можно улучшить, хотя, учитывая, что он должен обрабатывать так много данных Git.
Я нашел следующее полезным, чтобы увидеть, у кого было больше строк, которые в настоящее время находятся в базе кода:
другие ответы в основном сосредоточены на строках, измененных в коммитах, но если коммиты не выживают и перезаписываются, они могут быть просто сбиты. Вышеуказанное заклинание также позволяет вам сортировать всех коммиттеров по строкам, а не только по одному. Вы можете добавить некоторые опции в git blame (- C-M), чтобы получить лучшие номера, которые принимают движение файла и линию перемещение между файлами в учет, но команда может работать намного дольше, если вы это сделаете.
кроме того, если вы ищете строки, измененные во всех коммитах для всех коммиттеров, следующий маленький скрипт полезен:
после Алекс и Gerty3000ответ, я попытался сократить однострочный:
в основном, используя git log numstat и не отслеживание количества файлы изменен.
git версии 2.1.0 на Mac OSX:
на ответ С AaronM использование оболочки one-liner хорошо, но на самом деле есть еще одна ошибка, где пробелы будут повреждать имена пользователей, если между именем пользователя и датой существует разное количество пробелов. Поврежденные имена пользователей будут давать несколько строк для подсчета пользователей, и вы должны суммировать их самостоятельно.
Это небольшое изменение исправило проблему для меня:
обратите внимание на + after \s, который будет потреблять все пробелы от имени до даты.
фактически добавив этот ответ столько же для моей собственной памяти, сколько для помощи кому-либо еще, так как это, по крайней мере, второй раз, когда я google тема 🙂
@mmrobins @AaronM @ErikZ @JamesMishra предоставили варианты, которые имеют общую проблему: они просят git создать смесь информации, не предназначенную для потребления скриптов, включая содержимое строки из репозитория на той же строке, а затем сопоставить беспорядок с регулярным выражением.
это проблема, когда некоторые строки не являются допустимым текстом UTF-8, а также когда некоторые строки совпадают с регулярным выражением (это произошло здесь).
вот модифицированная строка, которая не имеет этих проблем. Он запрашивает Git для вывода данных чисто на отдельных строках, что позволяет легко фильтровать то, что мы хотим надежно:
вы можете grep для других строк, таких как author-mail, committer и т. д.
может, сначала сделать export LC_ALL=C (если bash ) для принудительной обработки на уровне байтов (это также значительно ускоряет grep из локалей на основе UTF-8).
вот краткий сценарий, который создает статистику для всех авторов. Это намного быстрее, чем решение Дэна выше в https://stackoverflow.com/a/20414465/1102119 (mine имеет временную сложность O(N) вместо O (NM), где N-количество коммитов, а M-количество авторов).
решение было дано с ruby в середине, perl был немного более доступен по умолчанию, вот альтернатива, использующая perl для текущих строк автором.
чтобы проиллюстрировать, вот a commit С большим количеством файлов, перемещаемых из одного из моих проектов, при использовании :
на мой взгляд, последнее дает более реалистичное представление о том, какое влияние человек оказал на проект, потому что переименование файла-гораздо меньшая операция, чем запись файла с нуля.
вот быстрый скрипт ruby, который загоняет влияние на пользователя против данного запроса журнала.