场景
我自己搭建了一个 git 服务器,为一个 bare(裸)仓库,为了防止意外情况的发生,我又在另外一台服务器上面创建了一个用于备份的 bare 仓库。将备份服务器仓库关联到远程仓库上面后,我使用 git pull -all 命令来备份,却被告之:
fatal: /usr/libexec/git-core/git-pull cannot be used without a working tree.
意思是 bare 仓库是不能做一些常规的修改操作的,比如 pull、创建新的分支等等。
解决办法
git remote add --mirror=fetch origin <url>
git fetch
用这种办法关联远程仓库,加个参数 --mirror=fetch ,然后再使用 fetch 命令,不光会把远程分支拉取下来,还会在本地创建相应的远程分支。
* [新分支] dev -> dev
* [新分支] master -> master