Git - history of a file
我有一个经常出现的工作流模式,我想知道如何在Git中实现这一点。
我有一个随时间变化的文件。我可能删除了一个方法或者以某种方式更改了它,但是我现在意识到一些代码可能是有用的。
如何检查单个文件的历史记录并签出和比较此以前提交的文件?
- 你试过一个简单的git log -- 吗?可能足够了,这取决于你所搜索内容的复杂性。
- 是的,我可以看到日志,但是我只想在commit dea11dfddc652cc09eabf2062ac5f9df8c731快速查看该文件。
- 哦^ ^所以你也可以做git checkout dea11df -- 。但是,请确保预先提交对文件的任何挂起的更改。然后,如果需要的话,您可以在之后使用git checkout -- 恢复文件的实际状态。
- stackoverflow.com/search?Q=%5bgit日志%5d+文件
- 注意,从技术上讲,Git没有"文件历史记录"。它只是有"历史",实际上是"所有的承诺"。每个提交都是一个完整的快照,因此如果您向Git请求"文件X的历史记录",Git所做的就是遍历提交图,向后,一次一个提交对,比较两个快照。如果快照$older与快照$newer在x上存在差异,那么git声明$newer"已更改"x。
- 因此,与查看文件x的历史记录不同,您查看的是"所有历史记录的子集,其中,从$older到$newer,x发生了变化"。这看起来是一样的,但对于--follow来说,情况变得复杂起来。
如果要查看文件的简单历史记录(即哪个提交更改了文件):
例如git log testdir/test.py。
对于文件的详细历史记录(包括diff),添加-p(patch的缩写):
1 2
| git log -p (filename)
git log --patch (filename) |
号
对于在提交中显示文件更改:
1
| git show (SHA Hash) (filename) |
您可以对特定文件执行git diff:https://git-scm.com/docs/git-diff尽管使用一些IDE(Intellij、Eclipse等)或GitGUI工具(Gitk、SourceTree、Gitkraken)更容易实现文件版本之间的差异/比较。
- 也在输入这个,BitBucket有一个非常简单的文件差异监视程序!