是否有办法从给定的提交号获取提交列表到HEAD?
我知道这是可能的提交日期,但我需要它的提交号,我似乎找不到任何文档,甚至这是可能的。
您可以在shell中执行以下git命令:
git log --pretty=oneline commit-id...HEAD
假设这里的“commit number”指的是提交哈希:
git log <commit-hash>..HEAD
git rev-list <since_hash>..HEAD
或者包含commit:
git rev-list <since_hash>^..HEAD
你也可以使用git log而不是git rev-list来获取更多的细节。
git log
git rev-list
git log <hash>..
是最少的打字量。省略“HEAD”假设这就是你的意思。Rev-list也可以。
如果这里有人试图找出如何通过git log的输出进行LESS,从某个提交开始,向后分页,它就像git log <hash>一样简单。
git log <hash>
正如其他人所说,git log <commit-hash>..HEAD让你开始。也建议使用git log <commit-hash>...HEAD。我添加这个答案是因为周期的数量会对差分产生巨大的影响,所以这或许值得理解也是git log。
git log <commit-hash>...HEAD
我对它的理解还不足以解释它的git log行为。对于git diff branchA..branchB,两点操作符将branchB尖端上的文件etc与branchA尖端上的文件etc的状态进行比较。三点操作符将branchB的tip上的文件etc与branchB从branchA分离的提交处的branchA中的文件etc进行比较。
git diff branchA..branchB
对我来说,这种区别可能很重要,因为three-dot可能并不表明合并的某个独立分支已经做出了类似的更改。也就是说,pull请求上的差异可能不会显示一个函数的补丁的当前上下文,如果该函数在分支分叉后发生了变化。
作为题外话,GitHub,隐式地,使用三点比较拉请求。GitHub 企业也使用了three-dot。在写这篇文章时,有一种方法可以看到如何在github中对链接页面进行两个点比较。
像hash..HEAD这样的范围似乎不能可靠地按照历史顺序产生结果,而像--author-date-order这样的选项似乎会被忽略。
hash..HEAD
--author-date-order
要获得自给定哈希以来的所有从历史上看提交,我发现这样的东西是唯一正确的解决方案(Bash):
git log --author-date-order --all --reverse --after="$(git show -s --format='%at' COMMIT_HASH)"
只要加上一般情况下的答案,您就可以从一个提交到另一个提交的所有提交。例如,假设__abc0是提交哈希的开始,B是提交哈希的结束
B
git rev-list <A>..<B>
的详细
git log <A>..<B>