Chr*_*ris 144 git version-control github git-history
可能重复:
使用Git版本控制查看文件的更改历史记录
有时我想逐步浏览特定文件的历史记录.在过去,我使用P4V,这非常快速和直观.
切换到git这是一项艰巨的任务.
我搜索了SO,我尝试了一些常用的guis:github,gitk,gitg,git-gui.
这些都消除了手动运行命令的需要,但工作流程与此相同.查看文件历史记录; 查看提交; 搜索大量不相关文件的差异.这是缓慢而重复的.
所有数据都在repo中,所以我认为这个简单的常见用例没有理由不能简化.
任何人都可以推荐一个这样做的工具 - 或者更有效的方式来利用命令行来做我想要的事情?
谢谢你的任何建议.
ral*_*nja 150
您可以使用git log在搜索时显示差异:
git log -p -- path/to/file
Run Code Online (Sandbox Code Playgroud)
Pie*_*age 134
你试过这个:
gitk path/to/file
Run Code Online (Sandbox Code Playgroud)
Jef*_*and 47
git log -p
将为每个选定的提交生成一个补丁(差异).对于单个文件,请使用git log --follow -p $file
.
如果您正在寻找特定的更改,请使用通过将提交数量分成两半git bisect
来查找 log(n)视图中的更改,直到找到您要查找的内容发生更改为止.
也可以考虑使用回顾历史git blame
,以遵循更改线路,如果你知道那是什么问题.此命令显示影响某一行的最新修订.你可能不得不回过头几个版本来找到引入某些东西的第一个变化,如果有人随着时间的推移调整它,但这可以给你一个良好的开端.
最后,gitk
因为GUI 确实会立即显示我点击的任何提交的补丁.
例 :
LiK*_*Kao 11
对我来说,主要的问题是,你究竟想要找出什么?您是否试图找出该文件中引入了哪些更改?
您可以使用git blame
它,它将使用SHA1和更改日期来分配每一行.git blame
如果您对此感兴趣,也可以告诉您某条线何时被删除或移动的位置.
如果你试图找出,当引入某个bug时,它git bisect
是一个非常强大的工具.git bisect
将对您的历史记录进行二进制搜索.您可以使用git bisect start
开始二分,然后git bisect bad
标记存在错误git bisect good
的提交,并标记没有错误的提交.git会检查两者之间的提交,并询问它是好还是坏.您通常可以在几个步骤中找到错误的提交.
由于我使用了git,我几乎没有发现需要手动浏览补丁历史来查找内容,因为大多数情况下git为我提供了一种实际查找所需信息的方法.
如果你试图想象的那么怎么做了一定的工作流程,但多在你所需要的信息,你可能会很多工作流,(在我看来)是更简单,更快.
归档时间: |
|
查看次数: |
150035 次 |
最近记录: |