Git配置异常:无法从GitHub拉取代码、推DreamHost后克隆文件夹为空
无法从GitHub拉取代码的原因及解决方案
你的.git/config中main分支默认绑定的上游远程是dreamhost,而非对应GitHub的origin远程,直接执行git pull默认只会拉取DreamHost端的代码,不会拉取GitHub内容。
可按需求选择解决方案:
- 单次拉取GitHub代码,直接指定远程与分支:
git pull origin main - 需修改
main分支默认上游为GitHub,执行命令:git branch -u origin/main
同时需要核对两点配置:
- 本地SSH公钥是否已经添加到你的GitHub账号中,否则会因为权限不足拉取失败
origin对应的URLgit@github.com:myusername/wp-theme.git是否和实际GitHub仓库地址一致,用户名、仓库名拼写错误也会导致拉取失败
DreamHost端克隆仓库为空的原因及解决方案
这个问题是典型的远程仓库类型使用错误导致的,首先确认你DreamHost服务器上的~/my.domain.com.git仓库初始化类型:
情况1:用普通git init初始化的非裸仓库
Git默认禁止向非裸仓库的当前检出分支推送内容,就算你修改配置强行推送成功,非裸仓库的工作目录也不会自动更新,直接克隆就会出现工作目录为空的情况。
优先推荐修复方案:
- 服务端重新初始化裸仓库:
rm -rf ~/my.domain.com.git && git init --bare ~/my.domain.com.git - 本地重新执行推送:
git push -u dreamhost main - 再到服务端执行克隆操作即可得到完整文件
如果不想重建仓库,也可以在服务端的~/my.domain.com.git目录下执行git reset --hard手动刷新工作目录,再重新克隆即可。
情况2:用git init --bare初始化的裸仓库
如果裸仓库克隆后为空,首先确认本地git push操作有没有报错,再分别在本地和服务端裸仓库目录执行git log main,确认提交记录已经同步到服务端,无提交记录的话重新推送即可。
内容的提问来源于stack exchange,提问作者user2012677
相关产品推荐
相关产品推荐

