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

Moh*_*sen 8 git git-revert

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

要获得所有sha1(有点噪音)我可以使用这个:

git log --author=Mohsen --pretty=one --since=4.days
Run Code Online (Sandbox Code Playgroud)

Cha*_*esB 10

你必须给format:%Hgit log并使用一个循环:

for sha in `git log --pretty=format:%H --author=Mohsen --since=4.days`; do
  git revert --no-edit $sha
done
Run Code Online (Sandbox Code Playgroud)

这将为每个恢复创建一个提交.禁止--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"
Run Code Online (Sandbox Code Playgroud)

  • 它确实如果一个恢复有冲突你将被停止并被允许继续`git revert --continue` (4认同)