我对git
使用命令行真的不太满意,所以我更喜欢使用SourceTree
,但UI无法解决我的一个问题(它总是重新加载到顶部)。
事实上,我想签出Swift
存储库的第一次提交(它有近4万次提交),然后只签出每一次提交,看看有什么变化(我想了解该语言是如何编写的)。
想象一下,在不知道是否有后继数组以及它可能拥有哪些信息(如提交id)的情况下,从索引0迭代一个数组。
有什么脚本或命令我可以使用吗?
更新:
我在这里自己找到了答案。
移动到下一个提交
function n() { git log --reverse --pretty=%H master | grep -A 1 $(git rev-parse HEAD) | tail -n1 | xargs git checkout }
移动到上一次提交
function p() { git checkout HEAD^1 }
您可以看到从第一次提交到最后一次提交的完整历史记录。这将显示所有代码更改(差异)。只需运行:git log -p --reverse
只需转到机器上repo的克隆即可。您可以从github获得第一次提交的SHA。复制要签出的提交的SHA。进行git checkout <SHA>
此外,您还可以执行git checkout head~n
,其中n是从您要引用的head
开始倒计时的提交数。
请参阅此处: