借助git reflog查找本地仓库pull前的提交状态
关于git reflog与其他分支操作的影响问题
核心答案:不会受其他分支的近期提交改动影响
git reflog 是本地仓库独有的引用变更日志,只记录你本地所有分支(包括HEAD指针)的移动、切换、提交、pull等操作历史,其他分支(比如feat-new-xxx)的提交或改动完全不会篡改master分支在reflog里的旧记录。
具体原因和验证方法:
- 本地专属特性:reflog存储在你本地的
.git/logs目录下,和远程仓库无关,也不会被其他分支的操作覆盖。只要你没执行过git gc(垃圾回收)且该记录没超过默认的90天保留期,master分支pull前的旧提交记录就会一直留在reflog里。 - 其他分支操作只会新增日志:你在feat-new-xxx分支做的提交、切换等操作,只会在reflog里新增对应的条目,不会修改或删除master分支之前的历史条目。
- 确认目标提交的方法:
- 用
git show 1487b22和git show 81f0efe查看提交的具体信息(包括提交时间、改动文件),对比去年7月的时间点就能初步筛选。 - 可以临时切换到该提交直接验证代码:
git checkout 1487b22,查看代码是否符合你去年7月的运行状态,验证完记得切回master分支:git checkout master。
- 用
内容的提问来源于stack exchange,提问作者Thomas
相关产品推荐
相关产品推荐

