我在一家小公司工作,我们的 Git 仓库有些混乱。我刚刚执行了 git pull
命令,结果我之前做的更改都不见了!
当我在主分支上使用 HEAD 时,git log
显示我的最后一次提交记录 b94940c63ef965ce45b0d64ccfba4359134d2552。
现在,如果我对丢失了更改的问题文件执行 git log filename
命令,则该提交记录不会显示(只显示早期提交记录)。
执行 git log --follow filename
命令后,我的提交记录 b94940c63ef965ce45b0d64ccfba4359134d2552 被显示为最近的提交记录。
确实,如果我执行以下命令:
git checkout b94940c63ef965ce45b0d64ccfba4359134d2552
git log filename
然后提交被展示了,我的修改已经在文件里了!
换句话说,我所做的提交显示在分支历史记录中(阻止了分支合并),但是单个修改过的文件却没有该提交的历史记录!(除非我明确地检出该提交)。
问题:
这到底是怎么发生的?
我该如何解决?(我们的 repo 中有多个文件存在问题)