执行以下命令git log --before "Feb 01 2011"
将返回指定日期之前的所有提交,包括其SHA
我正在尝试编写一个cygwin脚本,它将我的头部同步到特定月份的最后一次提交,而我不必自己找到并输入SHA。有任何想法吗?谢谢!
答案 0 :(得分:3)
只需使用与传递到日志相同的选项rev-list
,再加-n 1
即可返回第一个选项。
sha1=$(git rev-list --before "Feb 01 2011" -n 1 HEAD)
答案 1 :(得分:0)
在bash on linux上有以下工作,我认为它也适用于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