29
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Gitで過去のある時点のファイルの内容を見る

Posted at

以下のコマンドで見れます。

# ただ見る
$ git show <hash>:<abslute-file-path>
# 詳細に見る
$ git blame <hash> -- <file-path>

上記にあるようにファイルパスはともかく、ハッシュ値は取得しないといけません。

だたn年、n月、n日前のコミットハッシュを見る

以下のコマンドは、ある日時以前の一番最初のログを取ります。

  1. -1 => 最初の1つだけ表示
  2. --format='%h' => 短いハッシュ値だけ表示
  3. --before=... => ...以前から表示
git log -1 --format='%h' --before=midnight # 今日の0時0分以前
git log -1 --format='%h' --before='2017.12.31' # 2017年12月31日以前
git log -1 --format='%h' --before=1.day # 今から1日前
git log -1 --format='%h' --before=yesterday # 〃
git log -1 --format='%h' --before=1.week # 今から一週間前
git log -1 --format='%h' --before=10.day # 今から10日前
git log -1 --format='%h' --before=1.month # 今から1ヶ月前
git log -1 --format='%h' --before=1.year # 今から1年前

あるファイルのn行を変更した時点のコミットハッシュを見る

以下は100行目の変更時点のハッシュを表示します。

  1. -L1, 10 => 例えば1行目から10行目まで表示
git blame -L100,100 a.txt | cut -d ' ' -f 1  

使用例

例えば、「ある時点のsrc/a.txt」の中身を見たいとしたら、こんな感じにします。

# bash zsh
git show `git log --before=10.week -1 --format='%h'`:src/a.txt
# 行番号付き
git show `git log --before=10.week -1 --format='%h'`:src/a.txt | less -N
# fishならこっち
git show (git log --before=10.week -1 --format='%h'):src/a.txt

中身をblameで見たい場合はこうして。

# bash zsh
git blame `git log --before=10.week -1 --format='%h'` -- a.txt
# 一個前のコミット
git blame `git log --before=10.week -1 --format='%h'`^ -- a.txt
# fish
git blame (git log --before=10.week -1 --format='%h') -- a.txt

ある行の変更時点のファイルの内容をただ見るなら。

# bash zsh
git show `git blame --minimal -L30,30 a.txt | cut -d ' ' -f 1`:src/a.txt
# fish
git show (git blame --minimal -L30,30 a.txt | cut -d ' ' -f 1):src/a.txt

blameで見る。

# bash zsh
git blame `git blame --minimal -L30,30 a.txt | cut -d ' ' -f 1` -- a.txt
# fish
git blame (git blame --minimal -L30,30 a.txt | cut -d ' ' -f 1): -- a.txt

思ったこと

Gitってすごい(忘れちゃう😇)

29
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?