通过基于密钥的登录将本地计算机上的裸git repo克隆到服务器

时间:2015-08-25 16:59:42

标签: git ssh

我有一个只允许基于密钥的ssh登录的网络服务器。如果我在这台机器上托管裸git仓库,我可以只用moderate pain从我的本地机器上推送。但是,如何从本地计算机上托管的裸仓库中推出服务器?

注意:我在防火墙后面。

1 个答案:

答案 0 :(得分:0)

如果您有一个裸存储库,尝试运行git push可能会返回如下内容:

fatal: The current branch foo has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin foo

您可以使用git push --mirror推送对遥控器的所有引用。由于此命令旨在复制存储库,因此您无需指定有关远程跟踪分支的任何信息 - 它将同步所有内容。从git-pull手册页:

  

--mirror

     

不是将每个引用命名为push,而是指定所有引用      refs /(包括但不限于refs / heads /,      refs / remotes /,refs / tags /)镜像到遥控器      库。新创建的本地引用将被推送到远程      结束,本地更新的refs将在远程端强制更新,      已删除的引用将从远程端删除。这是      如果设置了配置选项remote..mirror,则为default。

在裸存储库中运行git pull实际上没有任何意义(因为git pull实际上是git fetch后跟git merge,并且没有本地分支你可以合并上游的变化)。您可以运行git remote updategit fetch从远程存储库中引入新对象。