我有一个只允许基于密钥的ssh登录的网络服务器。如果我在这台机器上托管裸git仓库,我可以只用moderate pain从我的本地机器上推送。但是,如何从本地计算机上托管的裸仓库中推出服务器?
注意:我在防火墙后面。
答案 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 update
或git fetch
从远程存储库中引入新对象。