【问题标题】:Revert all commits by a specific author since specific time恢复特定作者自特定时间以来的所有提交
【发布时间】:2013-07-29 22:25:33
【问题描述】:

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

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

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

【问题讨论】:

  • 如果您使用的是 github,网络视图可能会显示您需要 git reset 到的位置。另外,你想revert 还是reset?它们有点不同。
  • 还有其他人的其他提交。我不想重置

标签: git git-revert


【解决方案1】:

您必须将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"

【讨论】:

  • 谢谢!但是当发生冲突时它并没有真正停止。
  • 确实如此,如果一次还原发生冲突,您将被停止并被允许继续使用git revert --continue
  • 很棒的答案,但我需要在其中执行更多命令。我需要接受——如果存在冲突并且如果是合并我需要使用“git revert $sha -m 1;”他们的更改你能帮我吗?
  • 你可以做一个大的还原提交并手动接受更改吗?
  • 我的分支中有合并,我需要将它们还原为
猜你喜欢
  • 2023-04-03
  • 1970-01-01
  • 2019-01-12
  • 2011-08-11
  • 2017-05-16
  • 1970-01-01
  • 2014-09-11
  • 1970-01-01
  • 2014-07-07
相关资源
最近更新 更多