web-dev-qa-db-ja.com

GitHubリポジトリで最初のコミットの日付を見つけるにはどうすればよいですか?

GitHubリポジトリがある場合、最初のコミットの日付をすばやく見つけるにはどうすればよいですか?

プロジェクトの古さを知りたいことがよくありますが、コミット履歴が非常に長いプロジェクトのコミット履歴をすぐに開始する方法を見つけることができません。

43
Randomblue

最も古いコミットを表示するリポジトリの「Insights」タブをクリックし、続いて左側のメニューバーにある「Network」サブタブをクリックします。ページが完全にロードされたら(つまり、多数の行が結合され、すべてが表示されます)、 Shift+ 最初のコミットに至るまで。最初のコミットを表すドットをクリックすると、取得できます。

注:これは、元々GitHubで作成されたリポジトリに対してのみ機能し、別の場所からインポートされたリポジトリに対しては機能しません(GitHub自体を介して登録されていないコミットなど)。また、リポジトリのフォークが多すぎる場合、この方法は必ずしも機能しない場合があります。

または、リポジトリをローカルマシンに複製して、次のコマンドを実行できます。

git log --reverse

リポジトリのコミットは、逆順で表示されます(最も古いコミットが最初に表示されます)。

45
Hydra

リポジトリのクローンを作成した場合は、通常どおりgitコマンドを使用します。

// cd to repo
$ git log --reverse

コミットの履歴が逆順に表示されます。笑。-

14
Igor Parra

Hydraの答え フォークの多いプロジェクトでは動作しない可能性があります: "ネットワークグラフをロードできませんでした。表示するフォークが多すぎます。

「グラフ」の下の「貢献者」タブを確認できます

"Contributors" tab in "Graphs"

12
Uladzimir

これにより、最後のページが表示されます。

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

以下は、GitHubで最初のコミットのみを検索し、長いコミット履歴とフォークが多すぎるという問題を回避するサイトです。

http://first-commit.com/

ディスカッション ハッカーニュース

...これは、Webサイトをスクレイピングし、ジャンプ先のページを計算しているだけであることに注意してください。 APIを使用する方がはるかに良いでしょう。

1
Gordon

Unix sedツールを使用して、最初のコミットの日付だけをフィルタリングすることができます

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

まさにあなたが必要だと思います。

0
Petrillo