3

执行以下命令git log --before "Feb 01 2011"会返回指定日期之前的所有提交,包括它们的 SHA . 有任何想法吗?谢谢!

4

2 回答 2

3

只需使用rev-list与传递给日志的选项相同的选项,并-n 1仅返回第一个选项。

sha1=$(git rev-list --before "Feb 01 2011" -n 1 HEAD)
于 2011-09-22T18:50:34.497 回答
0

在linux上的bash中,以下工作,我认为它也应该在cygwin上工作:

git checkout $(git log --before='Feb 01 2011' -n1 | head -n 1 |sed s/commit\ //)

这样做时立即创建分支可能是个好主意

git checkout $(git log --before='Feb 01 2011' -n1 | head -n 1 |sed s/commit\ //) -b 2011-02

或者,如果您打算创建脚本标记可能是更好的选择。例如:

git checkout $(git log --before='Feb 01 2011' -n1 | head -n 1 |sed s/commit\ //)
git tag 2011-01
于 2011-09-22T18:50:20.150 回答