repo回退當前分支下所有倉庫到指定日期前的最新代碼版本

執行下面這樣的repo命令就行了:

repo forall -c 'commitID=`git log --before "2017-03-17 07:00" -1 --pretty=format:"%H"`; git reset --hard $commitID'

參數說明:

forall  操作分支中的所有倉庫
-c  只操作當前分支
--before  早於指定時間點的提交記錄
-1  只顯示最近的1條記錄(注意這是數字 1 ,如果要顯示 2 條就寫 2,以此類推)
"2017-03-17 07:00"  希望回退到的日期(時間點)
--pretty  以指定格式顯示提交記錄
%H  提交記錄的hash值,即commit id(其它格式及更詳細的信息可以使用命令git log --help打印幫助信息並查看“PRETTY FORMATS”小節)  

命令含義:
這條repo命令的實質就是在當前分支的每個倉庫下執行git log命令,找出該倉庫下符合時間條件的第一個提交記錄,然後對該倉庫執行git reset --hard操作。就這麼簡單。

發佈了125 篇原創文章 · 獲贊 152 · 訪問量 74萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章