ได้รับพื้นที่เก็บข้อมูลของ GitHub ฉันจะค้นหาวันที่กระทำครั้งแรกได้อย่างรวดเร็วได้อย่างไร?
ฉันมักจะต้องการทราบว่าโครงการมีอายุเท่าไหร่ แต่ฉันไม่สามารถหาวิธีที่รวดเร็วในการเริ่มต้นของประวัติการกระทำสำหรับโครงการที่มีประวัติการกระทำที่ยาวนานมาก
ได้รับพื้นที่เก็บข้อมูลของ GitHub ฉันจะค้นหาวันที่กระทำครั้งแรกได้อย่างรวดเร็วได้อย่างไร?
ฉันมักจะต้องการทราบว่าโครงการมีอายุเท่าไหร่ แต่ฉันไม่สามารถหาวิธีที่รวดเร็วในการเริ่มต้นของประวัติการกระทำสำหรับโครงการที่มีประวัติการกระทำที่ยาวนานมาก
คำตอบ:
คลิกที่แท็บ "ข้อมูลเชิงลึก" ของที่เก็บที่คุณต้องการเห็นการกระทำที่เก่าที่สุดตามด้วยแท็บย่อย "เครือข่าย" บนแถบเมนูด้านซ้าย เมื่อโหลดหน้าเต็มแล้ว (เช่นคุณสามารถเห็นจำนวนบรรทัดที่เข้าร่วมและทั้งหมด) กดShift+ ←เพื่อไปจนถึงการส่งครั้งแรก คลิกที่จุดที่แสดงถึงความมุ่งมั่นแรกและคุณสามารถรับได้
หมายเหตุ: ใช้งานได้เฉพาะกับที่เก็บที่สร้างขึ้นบน GitHub แต่เดิมไม่ใช่ที่เก็บที่นำเข้าจากที่อื่น (เช่นไม่ได้ลงทะเบียนผ่าน GitHub เอง) นอกจากนี้วิธีนี้อาจไม่จำเป็นถ้าพื้นที่เก็บข้อมูลมีส้อมมากเกินไป
หรือคุณสามารถโคลนที่เก็บไปยังเครื่องโลคัลของคุณและรันคำสั่งต่อไปนี้:
git log --reverse
การคอมมิทของที่เก็บจะถูกแสดงในลำดับย้อนกลับ (คอมมิทที่เก่าที่สุดก่อน)
-1
ไม่ทำงานด้วย--reverse
เพื่อให้ได้การส่งข้อความที่เก่าที่สุดเนื่องจากข้อ จำกัด เกิดขึ้นก่อนตัวกรอง
หากคุณโคลน repo เพียงใช้คำสั่ง git ตามปกติ:
// cd to repo
$ git log --reverse
มันจะแสดงประวัติของการกระทำในลำดับย้อนกลับ ฮ่า ๆ.-
คำตอบของไฮดราอาจไม่ทำงานกับโครงการที่มีจำนวนมากของงาว่า ". ไม่สามารถโหลดกราฟเครือข่ายงามากเกินไปที่จะแสดงผล "
คุณสามารถตรวจสอบแท็บ 'ผู้สนับสนุน' ภายใต้ 'กราฟ'
คุณจะได้รับหน้าสุดท้าย:
#!/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
ต่อไปนี้เป็นเว็บไซต์ที่ค้นหาเฉพาะการส่งคำสั่งครั้งแรกบน GitHub หลีกเลี่ยงปัญหาเกี่ยวกับประวัติการส่งข้อความยาวและส้อมมากเกินไป:
คำอธิบายเกี่ยวกับข่าว Hacker
... ข้อสังเกตใดที่ว่านี่เป็นเพียงการคัดลอกเว็บไซต์และคำนวณหน้าใดที่จะข้ามไป มันจะดีกว่าการใช้ API
คุณสามารถใช้เครื่องมือ unix sed สำหรับกรองวันที่ที่คอมมิทใช้ครั้งแรก
git log --reverse | sed -n -e "3,3p"
ฉันคิดว่ามันเป็นสิ่งที่คุณต้องการ
มีวิธีการทำจากส่วนต่อประสาน GitHub นั้นเอง
ไปที่หน้าโครงการและเลือกCode
แท็บตามด้วยแท็บCommits
ย่อยดังที่แสดงที่นี่:
ที่จะนำคุณไปสู่รายการความมุ่งมั่น หากคุณเลื่อนไปที่ด้านล่างของหน้าคุณสามารถย้อนเวลากลับไปได้โดยคลิกที่Older
ปุ่ม
ฉันไม่สามารถหาวิธีการเรียงลำดับได้จริง ๆ ดังนั้นการกระทำที่แสดงตามลำดับจากน้อยไปมาก
git log --reverse --format="format:%ci" | sed -n 1p
หากคุณต้องการรับจากบรรทัดคำสั่ง
git log --reverse
จะแสดงความมุ่งมั่นตั้งแต่แรกถึงล่าสุด