Как мне найти дату первого коммита в репозитории GitHub?


46

Учитывая наличие репозитория GitHub, как я могу быстро найти дату его первого коммита?

Я часто хочу знать, сколько лет проекту, но я не могу найти быстрый способ начать историю фиксации для проектов с очень длинной историей фиксации.


1
Резьба на SO может быть полезной Как показать первый совершить на «мерзавец журнал» выглядит как git log --reverseпокажут коммиты из ранних до самого последнего
batpigandme

Ответы:


46

Нажмите на вкладку «Insights» в хранилище, в котором вы хотите увидеть самый старый коммит, а затем на вкладке «Network» в левой строке меню. Когда страница полностью загружена (т. Е. Вы можете видеть множество соединяющихся строк и все), нажмите Shift+, чтобы перейти к первому коммиту. Нажмите на точку, которая представляет первый коммит, и вы можете получить его.

Примечание: это работает только для репозиториев, которые были изначально созданы на GitHub, но не для репозиториев, которые были импортированы из другого места (т.е. коммиты, не зарегистрированные через сам GitHub). Кроме того, этот метод может не работать, если в хранилище слишком много вилок.

Кроме того, вы можете клонировать репозиторий на локальный компьютер и выполнить следующую команду:

git log --reverse

Коммиты хранилища будут отображаться в обратном порядке (сначала самый старый коммит).


4
Не работает, если в репо слишком много вилок.
Майк Маккей

3
«Сеть» находится на боковой вкладке «Графики» (на всякий случай)
Джедиджа

Не работает, если ветка по умолчанию не имеет самого раннего коммита.
Стоп Harm Monica

Есть похожий вопрос по переполнению стека. Не могли бы вы опубликовать этот ответ?
Stevoisiak

-1не работает с --reverseполучением самого старого коммита, потому что ограничение происходит до фильтра.
Вопросы Quolonel

14

Если вы клонировали репозиторий, просто используйте команды git как обычно:

// cd to repo
$ git log --reverse

он покажет вам историю коммитов в обратном порядке. СМЕШНО.-


13

Ответ Hydra может не работать с проектами, в которых много разветвлений: « Не удалось загрузить сетевой график. Слишком много разветвлений для отображения ».

Вы можете проверить вкладку «Авторы» в разделе «Графики»

Вкладка «Участники» в «Графики»


Если вы выберете самый левый край графика с помощью кисти, а затем щелкните # коммитов для первого коммиттера, вы фактически увидите коммиты.
Гордон

@ Гордон, который не очень полезен, он просто показывает все коммиты для этого человека
Стивен Пенни

@ StevenPenny, вопрос был только в том, как получить дату первого коммита. Конечно, это грязно, но если вы выберете только самый левый край, вы увидите первый коммит. Я предпочитаю специальный сайт, на который я ссылаюсь в своем ответе ниже .
Гордон

Не работает, если ветка по умолчанию не имеет самого раннего коммита.
Стоп Harm Monica

Это лучшее
Code Whisperer

1

Это даст вам последнюю страницу:

#!/bin/sh
url=https://github.com/$1/$2/commits?page=
up=1
while :
do
  printf '%s%d\t' $url $up
  if wget -q --spider $url$up
  then
    echo OK
    lw=$up
    up=$((up * 2))
  else
    echo Not Found
    break
  fi
done
while :
do
  k=$(((lw + up) / 2))
  if [ $k = $lw ]
  then
    break
  fi
  printf '%s%d\t' $url $k
  if wget -q --spider $url$k
  then
    echo OK
    lw=$k
  else
    echo Not Found
    up=$k
  fi
done

Пример:

$ github.sh jp9000 OBS
https://github.com/jp9000/OBS/commits?page=1    OK
https://github.com/jp9000/OBS/commits?page=2    OK
https://github.com/jp9000/OBS/commits?page=4    OK
https://github.com/jp9000/OBS/commits?page=8    OK
https://github.com/jp9000/OBS/commits?page=16   OK
https://github.com/jp9000/OBS/commits?page=32   OK
https://github.com/jp9000/OBS/commits?page=64   OK
https://github.com/jp9000/OBS/commits?page=128  Not Found
https://github.com/jp9000/OBS/commits?page=96   Not Found
https://github.com/jp9000/OBS/commits?page=80   Not Found
https://github.com/jp9000/OBS/commits?page=72   OK
https://github.com/jp9000/OBS/commits?page=76   OK
https://github.com/jp9000/OBS/commits?page=78   OK
https://github.com/jp9000/OBS/commits?page=79   OK

Источник


1

Вот сайт, который ищет только первый коммит на GitHub, избегая проблем с длинной историей коммитов и слишком большим количеством вилок:

http://first-commit.com/

Обсуждение Hacker News .

... Который отмечает, что это просто очистка веб-сайта и вычисление того, на какую страницу перейти. Было бы гораздо лучше использовать API.


1
Не работает, если ветка по умолчанию не имеет самого раннего коммита.
Стоп Harm Monica

0

Вы можете использовать unix sed для фильтрации только даты первого коммита, используя

git log --reverse | sed -n -e "3,3p" 

Я думаю, что это именно то, что вам нужно.


0

Вы можете использовать это крошечное приложение https://firstcommit.netlify.com


2
Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится. - Из обзора
Серенесат

-1

Есть способ сделать это из самого интерфейса GitHub.

Перейдите на страницу проекта и выберите Codeвкладку, а затем Commitsвложенную вкладку, как показано здесь:

введите описание изображения здесь

Это приводит вас к вашему списку коммитов. Если вы затем перейдете к нижней части страницы, вы можете вернуться назад во времени, нажав Olderкнопку.

Я не мог найти способ отсортировать его так, чтобы коммиты показывались в порядке возрастания.


10
Я уже знал это. Вопрос был для проектов с очень длинной историей коммитов .
Randomblue

-2
git log --reverse --format="format:%ci" | sed -n 1p

Если вы хотите получить его из командной строки

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.