如何将 git 存储库从 Windows 克隆到 Linux?

How to clone git repo from Windows to Linux?

我之前在 Linux 服务器上保留了一个裸露的 git 存储库,在我的本地 Windows 笔记本电脑上保留了一个工作副本用于开发(使用 TortoiseGit 通过 ssh 同步到服务器)。服务器版本是 deleted/lost 所以我想使用 Windows 机器上本地工作副本的最新提交在服务器上重新创建 repo。

从 Windows 工作副本在远程 Linux 服务器上创建这个新的远程裸仓库副本的最佳方法是什么?

只需在服务器上创建存储库,然后将存储库作为远程存储库添加到您的本地存储库(如果它与之前的位置不同)并推送到它。

您可以使用

重新创建 linux 服务器存储库
mkdir -p myrepo.git
cd myrepo.git
git init --bare

在本地副本上,假设远程 URL 相同,执行

git push origin <branch refspec>

例如

git push origin master

注意:如果远程 URL 已更改,您可以使用

git remote set-url origin <new-url>

在您的 Windows 机器上:

git clone --bare /path/to/local-working-copy-of-the-repo

上述命令将创建 repo.git 文件夹的本地工作副本。
现在将文件夹(裸存储库)复制到 Linux 服务器上。

希望对您有所帮助。

按照以下步骤操作:

  1. 在远程创建裸存储库。

    我想 ad22 提供的答案对你来说已经足够好了:

    mkdir -p myrepo.git
    cd myrepo.git
    git init --bare
    

    否则,您需要了解如何在服务器上创建裸存储库。

  2. 复制或备忘刚刚创建的裸存储库的 URL。

    (当然,你需要有URL的访问权限。)

  3. 为您的本地存储库添加一个新的远程。

    由于您已有本地存储库,

    1. 右键单击该存储库,单击 TortoiseGit -> Settings
    2. 给遥控器起一个简称,URL 你复制了
    3. 添加并应用设置。

    参见:

  4. 通过右键单击本地存储库推送到远程并单击 推送 项。

  5. 在推送对话框中,

    1. Select 您刚刚添加的遥控器。
    2. 勾选Push all branches复选框,如果所有分支都可以public,否则你需要一个一个地push每个分支。
    3. 如果要推送所有标签,请选中 包含标签 复选框。

假设就是这样。 ^__^