我以前一直是CVS用户,虽然我认为Git是一个好的版本控制系统,但我缺少CVS中的功能。具体而言,我想查看文件的版本历史记录,例如其上的标签。我怎么能在Git中做到这一点?如何让Git显示文件的版本历史
2
A
回答
5
在git文件中没有自己的历史记录。整个项目都有历史。所以你唯一可以要求的是与文件相关的历史的一部分,或者更确切地说(因为没有文件标识的特殊概念)到一个路径。所有显示命令的历史记录都接受路径限制器。像:
$ git log -- file
$ gitk HEAD -- file
--
将修订与路径分开。在大多数情况下,您可以忽略它,但如果名称也是有效的修订名称,或者文件在当前版本中不存在,则可能需要该名称。
您也可以指定一个目录名称,在这种情况下,将列出该子树中所有文件的历史记录。
由于此限制通过路径,如果文件被重命名,它将不会遵循。毕竟,git不会存储任何有关重命名的明确信息。然而,它可以猜测重命名和你可以问log
尽量遵循重命名与--follow
像:
$ git log --follow -- file
这只适用于单个文件,而不是一个目录。
另一种选择是寻找包含特定文本的更改,如果您正在查找某些代码来自何处,这通常更容易。使用-S
选项以记录,如:
$ git log -Stext
2
试试这个关于大小:
git log -p filename
这是一个有点难以在终端上阅读,所以你可能需要将其重定向到一个文件,它在那里寻找。
3
Rafe Kettler's answer给你你所需要的基础知识,但是是值得推广的一个位。首先,如果你的文件具有相同的名称作为一个分支,你应该在文件名前添加--
:
git log -p -- filename
的-p
参数说也显示更改由该承诺中引入该文件。您提到您希望看到适用于该版本的任何标签 - 为此,您应该添加--decorate
选项。
最后,如果该文件可能已在其历史记录中的某个位置重新命名,或者从存储库中的其他位置复制到位,则应考虑添加--follow
选项。
可以在其documentation,或检查特定文件的历史记录在这个其他堆栈溢出问题的一些其他方法找到git log
的更多信息:
...这也建议图形历史浏览器(例如,gitk
),可以给出一个特定的路径。
相关问题
- 1. 的Git版本控制历史“体改文件”在Xcode 8.1
- 2. 如何让git不能跟踪大文件历史记录?
- 3. 文章版本/历史
- 4. 使用Git与文件夹版本历史
- 5. JIRA版本和组件版本历史
- 6. 很好地显示文件重命名历史的git日志
- 7. Confluence版本历史
- 8. 如何在Visual Studio中显示文件夹的历史记录git
- 9. xpages显示文档历史
- 10. 如何让Git提交历史记录显示在Redmine问题跟踪器中
- 11. 如何用git中的最新版本覆盖文件的历史修订版本?
- 12. 如何显示给定提交的git日志历史记录
- 13. 如何只显示git历史上的删除
- 14. 如何实现历史版本?
- 15. 如何在Subversion版本库历史记录中查找文件?
- 16. Git:移动历史中的文件也
- 17. 查看移动文件的GIT历史
- 18. Git和二进制文件的历史
- 19. git p4克隆文件历史包括积分历史
- 20. Git提交历史与文件历史不同步?
- 21. 如何在Git中始终显示完整历史记录?
- 22. 删除SVN历史版本
- 23. 如何显示git repo子目录的git日志历史记录?
- 24. git - Blob/index文件历史记录
- 25. Git Staged - 它有文件历史?
- 26. 分割文件时保留git历史
- 27. 在git历史中查找文件
- 28. Sharepoint。显示列表项目版本历史记录对话框
- 29. 如何让git在git状态下不显示某些文件
- 30. 如何让nbviewer显示本地文件?
谢谢。它显示提交历史记录。任何方法都可以显示标签上的信息?提交信息很长,大多数版本都不相同。 – wintige 2011-03-07 09:20:40
@wintige我不知道有任何命令可以区分标签。 – 2011-03-07 09:26:50
什么是难以阅读?就像所有的git命令一样,如果它指向终端,它会将自己重定向到更少的位置。当然,该寻呼机是可配置的。 – 2011-03-07 10:21:31