[git]如何查看一个文件的历史

2019-11-12 16:24:16 +08:00
 yuankui
[git]如何查看一个文件的历史,通过 git 命令行

第一步,获取该文件的对应所有的 object 的 version
$cmd $filepath =>

920bd276459c16b99387a0112ab9c9c5604531b9
920bd276459c16b99387a0112ab9c9c5604531b9
920bd276459c16b99387a0112ab9c9c5604531b9

第二部,根据该 object 的 version,查看该文件内容
git cat-file -p 920bd276459c16b99387a0112ab9c9c5604531b9

目前第二部没有问题,至于第一步,如果获取该文件所有历史的版本号呢?

===========
有个笨办法,可以通过 git log -- $filename
获取所有的 commit_id

然后根据 commit,获取 tree,然后逐级获取对应路径的 file

最后得到$filename 的 object-id,但是感觉这样太绕了,有没有简单的办法?
4002 次点击
所在节点    程序员
31 条回复
momocraft
2019-11-12 19:19:00 +08:00
`git log -p -M --follow --stat -- FILES`

git log 也可以画图的, 只要你会
KentY
2019-11-12 20:46:56 +08:00
@hakono 你在 git log 的时候加上 --graph 就有你说的的树了.
Rwing
2019-11-12 21:12:41 +08:00
gitkranken 非常棒
Solace202
2019-11-12 21:22:07 +08:00
没人用 git-tortoise?一直在用这个
sadhen
2019-11-12 21:26:11 +08:00
tig
cccy0
2019-11-12 21:36:25 +08:00
jb
大法好
guanhui07
2019-11-13 09:09:09 +08:00
tig
FaceBug
2019-11-13 12:02:22 +08:00
附议 source tree
hakono
2019-11-13 13:15:52 +08:00
@KentY 所以你这是抬杠还是什么?我说的一直都是 git log 好不好看懂。
就 git log --graph 那用纯字符画出的东西我是没看出哪里方便阅读了,还不如 git 自带的大老粗的 gitk 来的好懂
KentY
2019-11-13 16:03:10 +08:00
@hakono 对不起
hakono
2019-11-13 18:46:03 +08:00
@KentY。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/618854

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX