at backyard

Color my life with the chaos of trouble.

【ジョーク】 GitHubで草を偽造する

注: これはジョーク的な記事です。
また、GitHubの仕様を細かく調べたわけではないので、このやり方が最適解とは限りません。


もしあなたがGitHubで毎日熱心に草を生やすことに励んでいたとする。

ただ、うっかり、その日は用事が重なり、草を生やすことを忘れてしまった。
なんとかして思わず空いてしまった草を生やすことはできないか...
(イメージとしては下記のような感じ。10月30日が空いてしまっている)

https://github.com/shinshin86/timemachine-joke-20201031/raw/main/images/before.png

Gitのコミット履歴でAuthorDateとCommitDateを改竄する

GitHubの仕様を細かく調べたわけではないが、GitHubの草についてはGitのコミット時刻を参照しているものと思われる。
今回は、新たにリポジトリを立てて、そちらのコミット時刻を改竄することで生やされなかった草を生やそうという試みとなる。
以下、作業手順を淡々と記述していく。

1.GitHubリポジトリを新規作成する

2.そのリポジトリをローカルにクローンする

3. 適当な内容でコミットする

4. GitでAuthorDateとCommitDateを改竄する

実際に打ったコマンドはこちら。

GIT_COMMITTER_DATE="Fri Oct 30 12:30:27 2020 +0900" git commit --amend --date="Fri Oct 30 12:30:27 2020 +0900"

GIT_COMMITTER_DATE="Fri Oct 30 12:30:27 2020 +0900"CommitDate
--date="Fri Oct 30 12:30:27 2020 +0900" の箇所で AuthorDate が、それぞれ指定の時刻に書き換わる。
今回の場合、どちらも同じ時刻を指定している。

5.AuthorDateとCommitDateが変わったことを確認する
下記のコマンドを打つと、AuthorDateとCommitDateが変わったことが確認できる。

git log -1 --pretty=fuller

6.GitHub上のリモートリポジトリにpushする

下記の画像で、実際に生えるはずのなかった草が生えていることが確認できる。

https://github.com/shinshin86/timemachine-joke-20201031/raw/main/images/after.png

以上の作業を実際に行ったリポジトリが下記となる。

github.com

最後に

昨日はハロウィンだったので、なにかイタズラっぽい(トリック・オア・トリートにちなんでいる)ネタ的なことがしたいと思ってやってみた。
あくまでこれはネタなので、実際の開発環境などではやらないほうが良い。