Bitbucket撤销PR后git status无法查看此前修改文件求助
解决撤销PR后Git状态无变更的问题
看起来你是在撤销错误PR后,找不到之前的变更内容了对吧?别慌,咱们一步步排查解决:
第一步:先确认本地提交历史
首先看看你之前包含变更的提交还在不在本地,打开终端执行:
git log --oneline
这条命令会显示本地分支的提交记录,每条记录是短哈希值加提交信息。如果你能找到那个包含错误文件的提交(比如哈希值是abc123),那好办:
情况1:提交还在,需要修正错误文件
- 先撤销上次提交,但保留文件变更:
git reset HEAD^ - 取消错误文件的暂存状态,并丢弃它的变更:
git reset HEAD -- <错误文件名> git checkout -- <错误文件名> - 重新暂存正确的文件,修改提交信息并推送:
(git add <正确的文件名> git commit --amend -m "修正:仅提交正确变更" git push origin <你的分支名> --force--force是用来覆盖远程分支的旧提交,因为你修改了历史,注意如果这个分支只有你在使用就没问题) - 现在就可以重新发起Pull Request了。
情况2:本地提交找不到了?查Git操作日志
如果git log里看不到之前的提交,那试试查看Git的操作日志,它会记录所有HEAD的变动:
git reflog
这里会列出所有你做过的操作,比如切换分支、提交、重置等。找到你之前提交变更的那条记录(比如abc123 HEAD@{5}: commit: 你的提交信息),然后恢复到那个状态:
git reset --hard abc123
恢复后你就能看到之前的变更了,接着按照上面的步骤修正错误文件,重新提交推送即可。
情况3:变更可能在Stash里?
回忆一下你之前用过git stash,说不定变更还存在stash列表里,执行:
git stash list
如果看到类似stash@{0}: WIP on <你的分支名>: ...的条目,就把它恢复出来:
git stash apply stash@{0}
恢复后检查文件变更,去掉错误文件,重新提交即可。
情况4:远程分支还在吗?
如果你撤销PR的时候没删除远程分支,那可以从远程拉取分支到本地:
git fetch origin git checkout <你的分支名>
这样就能找回之前的变更,然后修正后重新推送。
内容的提问来源于stack exchange,提问作者user9370936
相关产品推荐
相关产品推荐

