在服务器建立 git 存储库
- 首先在服务器建立一个裸仓库
user@remote
:
mkdir repo.git
cd repo.git
git init --bare
裸仓库不包含工作区。也就是说,它没有项目的文件副本,而仅仅是一个版本库的存储空间。
- 在本地添加刚刚创建的仓库为远程仓库:
git remote add origin ssh://user@remote:/path/to/repo.git
git push
此时就分别建立好了 git 远程库和本地库。
如果想在服务器端也检出一份工作目录:
git clone /path/to/repo.git /path/to/working/directory
Troubleshooting
remote HEAD refers to nonexistent ref
在运行 git clone
时出现如下警告:
$ git clone /path/to/repo.git /path/to/working/directory
Cloning into 'repo'...
done.
warning: remote HEAD refers to nonexistent ref, unable to checkout.
这是远程仓库的 HEAD 引用不存在导致的。可能是远程仓库没有配置默认分支,即 HEAD 引用没有指向任何实际存在的分支导致的。
解决方法:
在裸仓库中设置 HEAD 指向的位置:
cd /path/to/repo.git
git symbolic-ref HEAD refs/heads/main
在本地仓库中重新拉取分支:
cd /path/to/repo
git pull origin main