10

如果远程(使用 ssh)不包含 git 存储库,是否仍然可以将本地存储库复制到远程并设置远程跟踪,而无需使用 scp 手动复制文件,然后执行 git clone?

4

2 回答 2

11

确实需要在远程设置存储库,但不应手动复制文件。至少,你不会得到它的历史。

首先,通过 ssh 连接到您的遥控器并执行以下操作:

mkdir your_repo.git
cd your_repo.git
git init --bare

.gitin 目录名称是完全可选的。该--bare选项使存储库没有索引,因此是可推送的。

然后,您返回本地存储库并添加远程:

git remote add remote_name user@remote.address:path/to/your_repo.git

你都准备好了。您现在需要做的就是:

git push remote_name
于 2012-07-08T11:01:14.427 回答
2

是否仍然可以将本地存储库复制到远程并设置远程跟踪,而无需使用 scp 手动复制文件,然后执行 git clone?

如果您有 ssh 访问权限,则可以复制 repo(是的,使用 a scp),但只复制一个文件: a git bundle

从那里,您可以将该捆绑包克隆为远程服务器上的裸存储库(一个文件充当您可以克隆的存储库)并将其用作远程存储库(您可以推送到远程裸存储库)。

与直接推送到空的裸存储库相比,优势在于这里的初始副本是一个文件。对于大型存储库,这可以使初始化更容易/更少依赖网络。

于 2012-07-08T10:58:43.133 回答