是否有办法从给定的提交号获取提交列表到HEAD?

我知道这是可能的提交日期,但我需要它的提交号,我似乎找不到任何文档,甚至这是可能的。


当前回答

您可以在shell中执行以下git命令:

git log --pretty=oneline commit-id...HEAD

其他回答

git log <hash>..

是最少的打字量。省略“HEAD”假设这就是你的意思。Rev-list也可以。

只要加上一般情况下的答案,您就可以从一个提交到另一个提交的所有提交。例如,a是提交哈希开始,B是提交哈希结束

git rev-list <A>..<B>

的详细

git log <A>..<B>

您可以在shell中执行以下git命令:

git log --pretty=oneline commit-id...HEAD

像hash..HEAD这样的范围似乎不能可靠地按历史顺序产生结果,而像——author-date-order这样的选项似乎会被忽略。

要获得自给定哈希以来的所有历史提交,我发现这样的东西是唯一正确的解决方案(Bash):

git log --author-date-order --all --reverse --after="$(git show -s --format='%at' COMMIT_HASH)"

正如其他人所说,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中对链接页面进行两个点比较。