使用 GIT 以特定格式显示早于特定日期的提交
With GIT show commits older than a specific date with specific format
我需要以特定格式打印早于特定日期的最新 10 次提交。我需要处理日期,通过bash命令获得:
date +"%Y%m%d%H%M"
我尝试了一些选项,但到目前为止什么都没有
e.g.: git log -5 --no-merges --format=format:%cd --after=201506301524
您必须格式化日期,只有数字不行。使用其中之一:
--after=2015-06-30-15:24:00
--after=2015-06-30:16:24:00
--after="2015-06-30 16:24:00"
所有这些格式都被接受了。
首先,您需要使用正确的日期格式 (date +"%Y-%m-%d %H:%M:00"
):
git log --no-merges --format=format:%cd --after="2015-06-30 15:24:00"
现在,您可以使用 --reverse
首先获取最旧的提交:
git log --reverse --no-merges --format=format:%cd --after="2015-06-30 15:24:00"
不幸的是,git log --reverse -10
不会 return 你想要的,因为它会抓取 10 个最新的提交,然后 反转列表(哪个意味着无论指定的日期是什么,您都会得到相同的列表。
另一种方法是对这个结果使用 head
:
git log --reverse --no-merges --format=format:%cd --after="2015-06-30 15:24:00" | head -10
你需要使用--until
而不是--after
,此外,正确的日期格式,但你可以使用date
来转换它:
git log --no-merges --format=format:%cd -10 --until "$(date -d "$(echo "201506301524" | sed 's/....$/ &/')")"
$(echo "201506301524" | sed 's/....$/ &/')
转换
20150630 1524
的日期,这是日期的有效输入格式。
我需要以特定格式打印早于特定日期的最新 10 次提交。我需要处理日期,通过bash命令获得:
date +"%Y%m%d%H%M"
我尝试了一些选项,但到目前为止什么都没有
e.g.: git log -5 --no-merges --format=format:%cd --after=201506301524
您必须格式化日期,只有数字不行。使用其中之一:
--after=2015-06-30-15:24:00
--after=2015-06-30:16:24:00
--after="2015-06-30 16:24:00"
所有这些格式都被接受了。
首先,您需要使用正确的日期格式 (date +"%Y-%m-%d %H:%M:00"
):
git log --no-merges --format=format:%cd --after="2015-06-30 15:24:00"
现在,您可以使用 --reverse
首先获取最旧的提交:
git log --reverse --no-merges --format=format:%cd --after="2015-06-30 15:24:00"
不幸的是,git log --reverse -10
不会 return 你想要的,因为它会抓取 10 个最新的提交,然后 反转列表(哪个意味着无论指定的日期是什么,您都会得到相同的列表。
另一种方法是对这个结果使用 head
:
git log --reverse --no-merges --format=format:%cd --after="2015-06-30 15:24:00" | head -10
你需要使用--until
而不是--after
,此外,正确的日期格式,但你可以使用date
来转换它:
git log --no-merges --format=format:%cd -10 --until "$(date -d "$(echo "201506301524" | sed 's/....$/ &/')")"
$(echo "201506301524" | sed 's/....$/ &/')
转换
20150630 1524
的日期,这是日期的有效输入格式。