基于ssh的两步git导入

基于ssh的两步git导入,git,import,ssh,bitbucket,Git,Import,Ssh,Bitbucket,Bitbucket有一个导入工具,用于从远程位置导入存储库,但它只支持git://协议。我们现有的存储库位于公司控制的防火墙后面的机器上,我无法更改,而且git://不可用。我需要将存储库从我们公司的机器移动到bitbucket,保留原始存储库中的所有历史记录和详细信息 是否有某种方法可以通过ssh将原始存储库克隆到本地机器上,然后将该存储库推送到bitbucket上新创建的裸初始化存储库来实现这一点?这样我会丢失任何历史记录或数据吗 (我希望得到一个不是特定于bitbucket的答案,但在任何

Bitbucket有一个导入工具,用于从远程位置导入存储库,但它只支持
git://
协议。我们现有的存储库位于公司控制的防火墙后面的机器上,我无法更改,而且
git://
不可用。我需要将存储库从我们公司的机器移动到bitbucket,保留原始存储库中的所有历史记录和详细信息

是否有某种方法可以通过ssh将原始存储库克隆到本地机器上,然后将该存储库推送到bitbucket上新创建的裸初始化存储库来实现这一点?这样我会丢失任何历史记录或数据吗


(我希望得到一个不是特定于bitbucket的答案,但在任何情况下都能“移动”git存储库。)

据我所知,克隆整个回购协议并推动它起作用。Bitbucket甚至为您提供了以下命令:

cd /path/to/my/repo
git remote add origin ssh://git@bitbucket.org/someuser/somerepo.git
git push -u origin --all   # to push changes for the first time

你要确保你有完整的历史。您可以通过首先执行完整的本地裸克隆来实现这一点

git clone --mirror git://LOCAL_URL/somerepo.git
然后加上遥控器,然后按Timothy指出的那样按。不过,您可能希望对远程别名使用除origin之外的其他名称

git remote add bitbucket ssh://git@bitbucket.org/someuser/somerepo.git
git push -u bitbucket --all

这可以用于任何Git托管服务。只需将远程URL替换为您想要的任何内容。

是什么让您认为我们只支持git://协议?我们支持智能http协议,因此,例如,您可以只导入


因此,如果您的repo可以从Internet访问并使用HTTP,那么您应该可以使用导入器(它执行正确的克隆并保存历史记录)。

如果您想要整个历史记录,请使用Marcus建议的克隆命令。致命:不是git存储库(或任何父目录):.git