【发布时间】:2012-07-08 02:44:49
【问题描述】:
如果远程(使用 ssh)不包含 git 存储库,是否仍然可以将本地存储库复制到远程并设置远程跟踪,而无需使用 scp 手动复制文件,然后执行 git clone?
【问题讨论】:
标签: git
如果远程(使用 ssh)不包含 git 存储库,是否仍然可以将本地存储库复制到远程并设置远程跟踪,而无需使用 scp 手动复制文件,然后执行 git clone?
【问题讨论】:
标签: git
是否仍然可以将本地存储库复制到远程并设置远程跟踪,而无需使用 scp 手动复制文件,然后执行 git clone?
如果您有 ssh 访问权限,则可以复制 repo(是的,使用 scp),但只复制 一个 文件:git bundle。
从那里,您可以在远程服务器上克隆该捆绑包作为裸仓库(一个文件充当您可以克隆的仓库)并将其用作远程仓库(您可以推送到远程裸仓库)。
与直接推送到空的裸存储库相比,优势在于这里的初始副本是一个文件。对于大型存储库,这可以使初始化更容易/更少依赖网络。
【讨论】:
您确实需要在远程设置存储库,但您不应该手动复制文件。至少,你不会得到它的历史。
首先,通过 ssh 连接到您的遥控器并执行以下操作:
mkdir your_repo.git
cd your_repo.git
git init --bare
目录名称中的.git 是完全可选的。 --bare 选项使存储库没有索引,因此是可推送的。
然后您返回本地存储库并添加远程:
git remote add remote_name user@remote.address:path/to/your_repo.git
你已经准备好了。您现在需要做的就是:
git push remote_name