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