我有一个关于 git 提交和分支的快速问题。
假设我想根据两个日期获取两个提交 idn。
我在“主分支”上做了如下操作。
git rev-list --since='2015-01-01' --reverse origin/master | head -1
git rev-list --until='2015-06-30' origin/master | head -1
现在如果我切换分支,我会执行以下操作:
git checkout testing
我是否只能获得来自测试分支的提交 ID,还是还能够获得来自包括主分支在内的所有其他分支的提交 ID?
简单的“是”或“否”就可以了,我想确保我不会从主分支获取任何提交,这样我只能从测试分支上的提交获取代码,而不会从任何其他分支获取代码。
提前致谢。
答案1
来自文档git rev-list
:
列出可通过从给定提交的父链接访问的提交,但排除可通过前面带有 ^ 的提交访问的提交。默认情况下,输出按时间倒序排列。
您检出了哪个分支并不重要。您必须指定分支(或一般而言是目标提交)作为命令的参数rev-list
。
您的问题的答案是,即使您在不同的分支上,您也会获得相同的输出。要获取testing
分支的提交,您需要使用:
git rev-list --since='2015-01-01' --reverse testing | head -1
git rev-list --until='2015-06-30' testing | head -1