Làm cách nào để tìm ngày cam kết đầu tiên trong kho GitHub?


45

Đưa ra một kho lưu trữ GitHub, làm thế nào tôi có thể nhanh chóng tìm thấy ngày cam kết đầu tiên của nó?

Tôi thường muốn biết dự án này bao nhiêu tuổi, nhưng tôi không thể tìm ra cách nhanh chóng để bắt đầu lịch sử cam kết cho các dự án có lịch sử cam kết rất dài.


1
Chủ đề trên SO có thể hữu ích Cách hiển thị cam kết đầu tiên bằng 'git log' trông giống như git log --reversesẽ hiển thị các cam kết từ sớm nhất đến gần đây nhất
batpigandme

Câu trả lời:


46

Nhấp vào tab "Thông tin chi tiết" của kho lưu trữ mà bạn muốn xem cam kết cũ nhất, theo sau là tab phụ "Mạng" trên thanh menu bên trái. Khi trang được tải đầy đủ (tức là bạn có thể thấy rất nhiều dòng tham gia và tất cả), nhấn Shift+ để đi đến cam kết đầu tiên. Nhấp vào dấu chấm đại diện cho cam kết đầu tiên và bạn có thể nhận được nó.

Lưu ý: Điều này chỉ hoạt động đối với các kho lưu trữ được tạo trên GitHub ban đầu, không phải các kho lưu trữ được nhập từ nơi khác (nghĩa là các cam kết không được đăng ký thông qua chính GitHub). Ngoài ra, phương pháp này có thể không nhất thiết phải hoạt động nếu kho lưu trữ có quá nhiều nhánh.

Ngoài ra, bạn có thể sao chép kho lưu trữ vào máy cục bộ của mình và chạy lệnh sau:

git log --reverse

Các cam kết của kho lưu trữ sau đó sẽ được hiển thị theo thứ tự ngược lại (cam kết cũ nhất trước).


4
Không hoạt động nếu repo có quá nhiều dĩa.
Mike McKay

3
"Mạng" được tìm thấy trong tab bên "Đồ thị" (chỉ trong trường hợp)
Jedidja

Không hoạt động nếu nhánh mặc định không có cam kết sớm nhất.
Ngừng làm hại Monica

Có một câu hỏi tương tự trên Stack Overflow. Bạn có muốn đăng chéo câu trả lời này?
Stevoisiak 16/03/18

-1không hoạt động --reverseđể có được cam kết cũ nhất vì giới hạn xảy ra trước bộ lọc.
Câu hỏi của Quolonel

14

Nếu bạn đã nhân bản repo, chỉ cần sử dụng lệnh git như bình thường:

// cd to repo
$ git log --reverse

nó sẽ cho bạn thấy lịch sử của các cam kết theo thứ tự ngược lại. CƯỜI NGẢ NGHIÊNG.-


13

Câu trả lời của Hydra có thể không hoạt động với các dự án có nhiều nhánh: " Không thể tải biểu đồ mạng. Quá nhiều nhánh để hiển thị. "

Bạn có thể kiểm tra tab 'Người đóng góp' trong 'Đồ thị'

Tab "Người đóng góp" trong "Đồ thị"


Nếu bạn chọn cạnh rất bên trái của biểu đồ bằng cách sử dụng bàn chải, sau đó nhấp vào # cam kết cho lần chuyển đầu tiên, bạn sẽ thực sự thấy các cam kết.
Gordon

@Gordon không hữu ích lắm, nó chỉ hiển thị tất cả các cam kết cho người đó
Steven Penny

@StevenPenny, câu hỏi chỉ là làm thế nào để có được ngày cam kết đầu tiên. Cấp, nó lộn xộn, nhưng nếu bạn chỉ chọn cạnh trái, bạn sẽ thấy cam kết đầu tiên. Tôi thích các trang web chuyên dụng tôi liên kết trong câu trả lời của tôi dưới đây .
Gordon

Không hoạt động nếu nhánh mặc định không có cam kết sớm nhất.
Ngừng làm hại Monica

Đây là thứ tốt nhất
Code Whisperer

1

Điều này sẽ giúp bạn có trang cuối cùng:

#!/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

Thí dụ:

$ 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

Nguồn


1

Đây là một trang web chỉ tìm kiếm cam kết đầu tiên trên GitHub, tránh các vấn đề với lịch sử cam kết dài và quá nhiều nhánh:

http://first-commit.com/

Thảo luận về Tin tức Hacker .

... Điều lưu ý rằng đây chỉ là quét trang web và tính toán trang nào sẽ chuyển đến. Nó sẽ tốt hơn nhiều để sử dụng API.


1
Không hoạt động nếu nhánh mặc định không có cam kết sớm nhất.
Ngừng làm hại Monica

0

Bạn có thể sử dụng công cụ unix sed để chỉ lọc ngày cam kết đầu tiên bằng cách sử dụng

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

Tôi nghĩ rằng nó chính xác là bạn cần.


-1

Có một cách để làm điều đó từ chính giao diện GitHub.

Chuyển đến trang dự án và chọn Codetab theo sau là tab Commitsphụ như được hiển thị ở đây:

nhập mô tả hình ảnh ở đây

Điều đó đưa bạn đến danh sách cam kết của bạn. Nếu sau đó bạn cuộn xuống cuối trang, bạn có thể tiếp tục quay ngược thời gian bằng cách nhấp vào Oldernút.

Tôi thực sự không thể tìm ra cách sắp xếp nó để các cam kết được hiển thị theo thứ tự tăng dần.


10
Tôi đã biết rằng. Câu hỏi là cho các dự án với lịch sử cam kết rất dài .
Randomblue

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

Nếu bạn muốn lấy nó từ một dòng lệnh

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.