ฉันจะหาวันที่ของการส่งครั้งแรกในที่เก็บ GitHub ได้อย่างไร


45

ได้รับพื้นที่เก็บข้อมูลของ GitHub ฉันจะค้นหาวันที่กระทำครั้งแรกได้อย่างรวดเร็วได้อย่างไร?

ฉันมักจะต้องการทราบว่าโครงการมีอายุเท่าไหร่ แต่ฉันไม่สามารถหาวิธีที่รวดเร็วในการเริ่มต้นของประวัติการกระทำสำหรับโครงการที่มีประวัติการกระทำที่ยาวนานมาก


1
หัวข้อใน SO อาจจะมีประโยชน์วิธีการแสดงครั้งแรกที่กระทำโดย 'บันทึก git'ดูเหมือนgit log --reverseจะแสดงความมุ่งมั่นตั้งแต่แรกถึงล่าสุด
batpigandme

คำตอบ:


46

คลิกที่แท็บ "ข้อมูลเชิงลึก" ของที่เก็บที่คุณต้องการเห็นการกระทำที่เก่าที่สุดตามด้วยแท็บย่อย "เครือข่าย" บนแถบเมนูด้านซ้าย เมื่อโหลดหน้าเต็มแล้ว (เช่นคุณสามารถเห็นจำนวนบรรทัดที่เข้าร่วมและทั้งหมด) กดShift+ เพื่อไปจนถึงการส่งครั้งแรก คลิกที่จุดที่แสดงถึงความมุ่งมั่นแรกและคุณสามารถรับได้

หมายเหตุ: ใช้งานได้เฉพาะกับที่เก็บที่สร้างขึ้นบน GitHub แต่เดิมไม่ใช่ที่เก็บที่นำเข้าจากที่อื่น (เช่นไม่ได้ลงทะเบียนผ่าน GitHub เอง) นอกจากนี้วิธีนี้อาจไม่จำเป็นถ้าพื้นที่เก็บข้อมูลมีส้อมมากเกินไป

หรือคุณสามารถโคลนที่เก็บไปยังเครื่องโลคัลของคุณและรันคำสั่งต่อไปนี้:

git log --reverse

การคอมมิทของที่เก็บจะถูกแสดงในลำดับย้อนกลับ (คอมมิทที่เก่าที่สุดก่อน)


4
ใช้งานไม่ได้หาก repo มีส้อมมากเกินไป
Mike McKay

3
"เครือข่าย" พบได้ในแท็บด้านข้าง "กราฟ" (ในกรณี)
Jedidja

ไม่ทำงานหากสาขาเริ่มต้นไม่มีการกระทำที่เร็วที่สุด
หยุดทำร้ายโมนิก้า

มีคำถามที่คล้ายกันใน Stack Overflow คุณต้องการข้ามคำตอบนี้หรือไม่
Stevoisiak

-1ไม่ทำงานด้วย--reverseเพื่อให้ได้การส่งข้อความที่เก่าที่สุดเนื่องจากข้อ จำกัด เกิดขึ้นก่อนตัวกรอง
คำถามของ Quolonel ใน

14

หากคุณโคลน repo เพียงใช้คำสั่ง git ตามปกติ:

// cd to repo
$ git log --reverse

มันจะแสดงประวัติของการกระทำในลำดับย้อนกลับ ฮ่า ๆ.-


13

คำตอบของไฮดราอาจไม่ทำงานกับโครงการที่มีจำนวนมากของงาว่า ". ไม่สามารถโหลดกราฟเครือข่ายงามากเกินไปที่จะแสดงผล "

คุณสามารถตรวจสอบแท็บ 'ผู้สนับสนุน' ภายใต้ 'กราฟ'

แท็บ "ผู้ร่วมให้ข้อมูล" ใน "กราฟ"


หากคุณเลือกขอบซ้ายสุดของกราฟโดยใช้แปรงให้คลิกที่ # commits สำหรับการเดินทางครั้งแรกคุณจะเห็นการกระทำที่แท้จริง
Gordon

@Gordon ที่ไม่เป็นประโยชน์มากมันแสดงให้เห็นถึงความมุ่งมั่นทั้งหมดสำหรับคนนั้น
Steven Penny

@StevenPenny คำถามเป็นเพียงวิธีการได้รับวันที่กระทำครั้งแรก จริงอยู่มันยุ่ง แต่ถ้าคุณเลือกแค่ขอบซ้ายสุดคุณจะเห็นความมุ่งมั่นแรก ฉันชอบที่ฉันทุ่มเทเว็บไซต์ที่เชื่อมโยงในคำตอบของฉันด้านล่าง
Gordon

ไม่ทำงานหากสาขาเริ่มต้นไม่มีการกระทำที่เร็วที่สุด
หยุดทำร้ายโมนิก้า

นี่คือสิ่งที่ดีที่สุด
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

... ข้อสังเกตใดที่ว่านี่เป็นเพียงการคัดลอกเว็บไซต์และคำนวณหน้าใดที่จะข้ามไป มันจะดีกว่าการใช้ 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

หากคุณต้องการรับจากบรรทัดคำสั่ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.