【问题标题】:How to move local git repository to another machine and use it?如何将本地 git 存储库移动到另一台机器并使用它?
【发布时间】:2021-02-22 16:18:19
【问题描述】:

我有时会使用本地 git 存储库来跟踪我所做的更改,然后再将其提交到我们的官方项目 git 存储库。
我现在正在为 Ubuntu 16.04 机器上的新项目做同样的事情,但这一次,因为工作目录和我的本地存储库在同一个硬盘中(都在 /dev/sdb1 中),如果硬盘出现故障,我将无法恢复数据。这让我感到不安,所以我认为我应该将存储库移动到我拥有的另一台机器(它是 Centos 6.9 机器),因为我没有在 Ubuntu 当前机器上安装另一个硬盘。
所以我从 Ubuntu 机器上解压了 ProjS.git 目录(存储库),然后将它 ftp'​​d 到我的 CentOS 机器上,然后在 CentOS 机器上的 /home2/repos.ProjS.git 上解压它。并且在ubuntu机器的~/testgit目录下,我试过了

ckim@chan-ubuntu:~/testgit$ git clone ssh://ckim@129.254.xxx.yyy/home2/repos/ProjS.git/
Cloning into 'ProjS'...
ckim@129.254.xxx.yyy's password: 
fatal: protocol error: bad line length character: ----
ckim@chan-ubuntu:~/testgit$ fatal: The remote end hung up unexpectedly

CentOS 机器从未被用作外部机器的 git 存储库。 (但它曾作为内部用户的 git 存储库,实际上是我的同一用户)。在这种情况下,我该怎么办? (也许我应该给自己访问权限。)

【问题讨论】:

  • 你为什么不用你的代码创建一个分支(类似于“备份”)然后从新机器上拉出来?
  • @berlin 分支与否,问题出在另一台机器上。回购仅在本地机器上被拉取。现在我想将 repos 放在远程机器上,然后从我当前的机器(ubuntu)中提取它。

标签: git ssh


【解决方案1】:

我将使用git bundle command(正如我在“Fully backup a git repo?”中描述的那样)而不是压缩存储库

这将导致您可以复制 一个 文件(scp 用于通过 SSH 复制)并进行克隆。

 git clone myrepo.bundle

克隆后,您可以添加原始 repo SSH URL,但请确保生成 SSH 密钥,并将公共密钥注册到原始服务器。

ssh-keygen -t rsa -P""
# copy ~/.ssh/id_rsa.pub in 129.254.xxx.yyy:/home/ckim/.ssh/authorized_keys

这样,无需询问密码。
确保/home/ckin 中的~/.bashrc~/.profile 是静默的(不输出字符串)

【讨论】:

  • 谢谢。这行得通! (我只是使用了tar'ed repos,所以它并不重要)。两件重要的事情是 ssh 密钥(我期待这样的事情)和从 CentOS 帐户中的 .cshrc 中删除打印(也许这是直接的问题,因为 .cshrc 吐出 ---- 模式。)。非常感谢!
猜你喜欢
  • 2022-08-19
  • 1970-01-01
  • 2011-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-19
  • 1970-01-01
  • 2013-10-06
相关资源
最近更新 更多