如何通过USB驱动器将我的git存储库从我的Windows机器复制到linux机器?

B T*_*B T 3 migration git

我有一台运行在Windows台式机上的git服务器,它已经莫名其妙地失去了连接到互联网的能力.我想将repo移动到linux机器上.我已经知道如何在设置后将克隆的repos切换为指向新的master,但我需要先将它转换为新的机器.

我假设因为windows和linux有点不同,我不能只是逐字复制repo目录.但也许我可以吗?我有什么选择?

Von*_*onC 16

你可以做一个git包:它会在一个文件中压缩repo.移动一个文件很容易,而不是包含所有文件的all repo.

git bundle create /tmp/myrepo.bundle --all
Run Code Online (Sandbox Code Playgroud)

请参阅" 如何通过电子邮件向某人发送git存储库? "

在Linux上复制后,您可以从该文件中克隆.

git clone myrepo.bundle
cd myrepo
Run Code Online (Sandbox Code Playgroud)


Cod*_*ard 7

正如之前所建议的,您可以创建捆绑包。但捆绑包是一个只读存储库。

这是最简单的事情:只需复制项目的根文件夹(它必须包括内部.git)。将其复制到 USB,然后复制到 Linux 计算机。

您唯一需要担心的是 CRLF。这就是 git 处理换行的方式。

在 Windows 上,它应该具有 true 值,而在 Linux 上它应该具有输入值,如下所示

# Linux based OS should be: 
git config --global core.autocrlf input 

# Windows configuration
git config --global core.autocrlf true
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 如果不设置“autocrlf=input”,每个文件都会显示为已修改。我想‘找到’。-名称“*” | xargs dos2unix`就足够了。之后它们仍然显示为修改后的,但与“git diff”没有区别。 (3认同)