Git push成功后,远程仓库将文件显示为已删除,且找不到push的文件
git推送远程成功后,
在远程服务器上,并未看到推送的文件,且
git status 出现如下:
# Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # deleted: 1.txt # deleted: 2.txt
如何才能看到推送的文件?
1、输入:git log
commit 8fb40da4dee26b4dbaa424eb5c60ee9d40c3ad30
Author: an <12345678@163.com>
Date: Mon Jun 7 21:27:00 2021 +0800
第一次提交1.txt 2.txt
2、输入:git reset --hard 8fb40da4dee26b4dbaa424eb5c60ee9d40c3ad30
3、输入:ls (即可看到推送上来的文件)
Git push成功后,远程仓库将文件显示为已删除,且找不到push的文件,原因:
如果使用了git init初始化,则远程仓库的目录下,也包含work tree,当本地仓库向远程仓库push时,
如果远程仓库正在push的分支上(如果当时不在push的分支,就没有问题), 那么push后的结果不会反应在work tree上, 即在远程仓库的目录下对应的文件还是之前的内容,
必须得使用git reset --hard 回退到此时HAED知道的位置才能看到push后的内容。
办法:
如果服务器仓库在master分支上,且在本地master分支刚好向服务器master分支上push了。就使用git reset --hard 版本号(前6位或完整版本号都行)
参考
Git使用基础---git init 与git init --bare的区别