如何重置PR中dir1文件夹的修改?Git checkout操作未生效
重置PR中dir1文件夹的正确操作
为什么之前的操作没生效
你遇到的问题主要是两个点:
- PR默认对比的是创建时的master快照,不是你刚拉取的最新master分支
- 仅用
git checkout master -- dir1没彻底清除本地提交里的dir1修改,且操作后没推送到远程PR分支
具体解决步骤
1. 先拉取最新的master分支
git checkout master git pull origin master
2. 切回你的PR开发分支
把下面的your-pr-branch换成你实际的分支名(比如feature/xxx):
git checkout your-pr-branch
3. 彻底重置dir1到最新master的状态
这里给两种方法,选一个适合你的:
方法一:直接覆盖(简单快速)
先删掉本地当前的dir1,再从最新master拉取干净的版本:
git rm -r dir1 git checkout master -- dir1 git add dir1 git commit -m "撤销dir1所有修改,对齐最新master版本"
方法二:清理提交历史(适合需要整理PR提交的情况)
如果想把所有涉及dir1的提交从历史里删掉,避免PR显示冗余记录:
# 交互式rebase,列出PR分支相对于master的所有提交 git rebase -i master
在弹出的编辑器里,找到所有标注changes to dir1的提交,把这些提交行开头的pick改成drop,保存退出。
要是rebase时出现冲突,只保留master里dir1的内容就行,解决完冲突后执行
git rebase --continue
4. 推送到远程PR分支
因为修改了提交历史(尤其是用rebase的情况),需要强制推送:
git push origin your-pr-branch --force-with-lease
--force-with-lease比直接--force安全,不会误删其他人在你分支上的操作
5. 更新PR的基准分支
登录PR所在的平台,找到你的PR,点击「Update branch」或「Rebase onto master」按钮,让PR对比最新的master分支,这样就能看到dir1的修改已经被移除了。
内容的提问来源于stack exchange,提问作者instant501
相关产品推荐
相关产品推荐

