Як я можу знайти дату першого вчинення в сховищі GitHub?


46

З огляду на сховище GitHub, як я можу швидко знайти дату його першого введення?

Мені часто хочеться дізнатися, скільки років проекту, але я не можу знайти швидкого способу отримати початок історії виконання проектів з дуже довгими історіями комісій.


1
Тема на SO може бути корисною Як виглядає показ першого фіксації за допомогою "git log", як виглядатимуть git log --reverseповідомлення від найдавніших до останніх
batpigandme

Відповіді:


46

Клацніть на вкладці "Статистика" сховища, в якому ви хочете побачити найстарішу фіксацію, а потім на вкладці "Мережа" на лівій панелі меню. Коли сторінка повністю завантажена (тобто ви бачите безліч рядків, що приєднуються і всі), натисніть Shift+, щоб пройти весь шлях до першого введення. Клацніть на крапку, яка являє собою першу фіксацію, і ви можете її отримати.

Примітка. Це працює лише для сховищ, створених на GitHub спочатку, а не для сховищ, імпортованих з іншого місця (тобто комісій, не зареєстрованих через сам GitHub). Також цей метод не обов'язково може працювати, якщо в сховищі є занадто багато вилок.

Крім того, ви можете клонувати сховище до локальної машини та виконати таку команду:

git log --reverse

Коміти сховища будуть показані у зворотному порядку (спочатку старе фіксує).


4
Не працює, якщо репо має занадто багато вилок.
Майк Маккей

3
"Мережу" можна знайти на бічній вкладці "Графіки" (про всяк випадок)
Дзідіджа

Не працює, якщо відділення за замовчуванням не має найранішої передачі.
Зупиніть шкодити Моніці

Там є аналогічне питання на переповнення стека. Чи проти заперечити цю відповідь?
Стевойсяк

-1не працює з тим, --reverseщоб отримати найстаріший фіксатор, оскільки обмеження відбувається перед фільтром.
питання Quolonel

14

Якщо ви клонували репо, просто використовуйте команди git як завжди:

// cd to repo
$ git log --reverse

він покаже вам історію скоєнь у зворотному порядку. ЛОЛ.-


13

Відповідь Hydra може не працювати з проектами з великою кількістю вилок: " Не вдалося завантажити мережевий графік. Забагато вилок для відображення ".

Ви можете переглянути вкладку "Співавтори" у розділі "Графіки"

Вкладка "Співавтори" в "Графіки"


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

@Gordon, що не дуже корисно, воно просто показує всі зобов’язання для цієї людини
Steven Penny

@StevenPenny, питання полягало лише в тому, як отримати дату першого вчинення. Зрозуміло, це безладно, але якщо ви виберете лише той самий лівий край, ви побачите перше виконання. Я вважаю за краще спеціалізований сайт, на який я пов’язаний у своїй відповіді нижче .
Гордон

Не працює, якщо відділення за замовчуванням не має найранішої передачі.
Зупиніть шкодити Моніці

Це найкраще
шепіт коду

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/

Дискусія на новинах Хакерів .

... Що зазначає, що це просто вискоблювання веб-сайту та обчислення того, на яку сторінку перейти. Набагато краще було б скористатися API.


1
Не працює, якщо відділення за замовчуванням не має найранішої передачі.
Зупиніть шкодити Моніці

0

Ви можете використовувати інструмент unix sed для фільтрації лише дати першого використання

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

Я думаю, це саме вам і потрібно.


-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.