从特定时间开始,还原特定作者的所有提交

时间:2013-07-29 23:09:25

标签: git git-revert

我想在4天前恢复特定作者的所有提交。我该怎么做?

要获得所有sha1(带有一点噪音),我可以使用它:

git log --author=Mohsen --pretty=one --since=4.days

1 个答案:

答案 0 :(得分:10)

您必须将format:%H提供给git log并使用循环:

for sha in `git log --pretty=format:%H --author=Mohsen --since=4.days`; do
  git revert --no-edit $sha
done

这将为每个恢复创建一个提交。禁止--no-edit选项以交互方式修改每个恢复的提交消息。

或者,如果你想做一个大的还原提交:

for sha in `git log --pretty=format:%H`; do sharange="$sharange $sha"; done
git revert $sharange --no-commit
git commit -m "reverted commits $sharange"