如何撤销Pull Request中单个文件的全部修改?
回滚分支中特定文件的所有修改
要彻底回滚my-feature分支里对somefolder/somefile.sh的所有修改,最直接稳妥的方式是将该文件恢复到origin/development分支的状态,具体命令如下:
确保当前处于目标分支:
git checkout my-feature从基准分支拉取该文件的原始版本覆盖本地修改:
git checkout origin/development -- somefolder/somefile.sh提交回滚操作:
git commit -m "Revert all changes to somefolder/somefile.sh"由于之前已推送过分支且执行过变基,需要强制推送更新远程分支:
git push origin my-feature --force
补充说明
如果分支中针对该文件有多个独立提交,也可以通过git log -- somefolder/somefile.sh找到所有修改该文件的提交哈希,然后逐个执行git revert <commit-hash>来撤销每个提交的修改,最后再推送。但这种方式步骤更多,适合需要保留其他关联修改的场景;如果只是要完全丢弃该文件的所有变更,上面的方法效率更高。
内容的提问来源于stack exchange,提问作者Alexey Starinsky
相关产品推荐
相关产品推荐

