如何还原某些用户在 GIT 存储库中所做的更改
Posted
技术标签:
【中文标题】如何还原某些用户在 GIT 存储库中所做的更改【英文标题】:How To Revert Changes made by Some User in GIT Repository 【发布时间】:2012-09-15 17:44:06 【问题描述】:我有一个 GIT 存储库,其中许多用户(比如 A、B、.....X)提交了该文件。 我想删除或恢复用户“X”提交的所有文件。
有可能还是我必须手动执行?
【问题讨论】:
什么是“文件”?是否有需要还原的特定文件,或者您想摆脱该用户的所有提交? 是的,简而言之,我们需要恢复 X 用户所做的所有更改。就像应用一个可以在不影响其他用户提交的情况下恢复更改的补丁一样。 【参考方案1】:试试这个:
git log --author=X --format="%H" | xargs git revert
管道的第一部分生成用户名与正则表达式 (!) X
匹配的所有提交的 SHA1;第二部分在这些提交上调用git revert
。但是,如果其中一个提交未能完全恢复,您可能只想查看
git log --author=X --oneline
并手动还原。
【讨论】:
我建议设置一个提交限制范围,例如git log --author=X 1234fde...master
不幸的是,如果更改足够大以至于可以还原,那么您可能最终需要手动还原每个并解决冲突方式。【参考方案2】:
我相信,您可以为此使用 git revert。有关详细信息,请参阅git manual section。
要点是你可以说:
git 还原 您要撤消的提交的 id 在哪里,它会尝试撤消它。
【讨论】:
以上是关于如何还原某些用户在 GIT 存储库中所做的更改的主要内容,如果未能解决你的问题,请参考以下文章