2011-09-22 97 views
3

執行以下命令git log --before "Feb 01 2011"返回指定日期之前的所有提交,包括它們的SHA 我正在嘗試編寫一個將我的頭同步到最後的cygwin腳本無需我自己查找並輸入SHA。有任何想法嗎?謝謝!如何從git日誌輸出中獲取特定的SHA

回答

3

只要使用rev-list使用相同的選項,你會傳遞給日誌,加上-n 1返回只是第一個。

sha1=$(git rev-list --before "Feb 01 2011" -n 1 HEAD) 
+0

真棒,謝謝! – blaughli

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 
+0

謝謝你,這是正確的地方我前往:))) – blaughli