GitHubリポジトリがある場合、最初のコミットの日付をすばやく見つけるにはどうすればよいですか?
プロジェクトの古さを知りたいことがよくありますが、コミット履歴が非常に長いプロジェクトのコミット履歴をすぐに開始する方法を見つけることができません。
最も古いコミットを表示するリポジトリの「Insights」タブをクリックし、続いて左側のメニューバーにある「Network」サブタブをクリックします。ページが完全にロードされたら(つまり、多数の行が結合され、すべてが表示されます)、 Shift+← 最初のコミットに至るまで。最初のコミットを表すドットをクリックすると、取得できます。
注:これは、元々GitHubで作成されたリポジトリに対してのみ機能し、別の場所からインポートされたリポジトリに対しては機能しません(GitHub自体を介して登録されていないコミットなど)。また、リポジトリのフォークが多すぎる場合、この方法は必ずしも機能しない場合があります。
または、リポジトリをローカルマシンに複製して、次のコマンドを実行できます。
git log --reverse
リポジトリのコミットは、逆順で表示されます(最も古いコミットが最初に表示されます)。
リポジトリのクローンを作成した場合は、通常どおりgitコマンドを使用します。
// cd to repo
$ git log --reverse
コミットの履歴が逆順に表示されます。笑。-
Hydraの答え フォークの多いプロジェクトでは動作しない可能性があります: "ネットワークグラフをロードできませんでした。表示するフォークが多すぎます。」
「グラフ」の下の「貢献者」タブを確認できます
これにより、最後のページが表示されます。
#!/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で最初のコミットのみを検索し、長いコミット履歴とフォークが多すぎるという問題を回避するサイトです。
ディスカッション ハッカーニュース 。
...これは、Webサイトをスクレイピングし、ジャンプ先のページを計算しているだけであることに注意してください。 APIを使用する方がはるかに良いでしょう。
Unix sedツールを使用して、最初のコミットの日付だけをフィルタリングすることができます
git log --reverse | sed -n -e "3,3p"
まさにあなたが必要だと思います。