git 命令

文章介绍了如何使用git的`gitlog`和`gitreset--hard`命令,结合`--before`参数回退到早于某个日期的最新提交状态。通过在每个仓库中查找符合条件的commitID,并执行hard重置,可以将代码库恢复到指定日期的版本。
摘要由CSDN通过智能技术生成

git 命令

1、将本地仓库的代码回退到指定的时间点

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

或者

repo forall -p -c  'git checkout `git rev-list -n 1 --before="5 days ago" HEAD`'

参数说明

  1. forall 操作分支中的所有仓库

  2. -c 只操作当前分支

  3. –before 早于指定时间点的提交记录

  4. -1 只显示最近的1条记录(注意这个数字是1,如果要显示2就写2,以此类推)

  5. 2022-07-26 00:00 希望回退到的日期(时间点)

  6. –pretty 以指定格式显示提交记录

  7. %H 提交记录的hash值,即commit id (其它格式及更详细的信息可以使用命令 git log --help 打印帮助信息并查看 “PRETTY FORMATS” 小节)

    命令含义

    这条repo命令的实质就是在当前分支的每个仓库下执行git log命令,找出该仓库下符合时间条件的第一个提交记录,然后对该仓库执行git reset --hard操作。就这么简单。

例如 回退到2022-12-28号,保留12-28号修改

xxxxxxxxxx repo forall -c 'commitID=`git log --before "2022-12-29 00:00" -1 --pretty=format:"%H"`; git reset --hard $commitID'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值