【问题标题】:Migrating Git hosts迁移 Git 主机
【发布时间】:2012-09-13 01:06:27
【问题描述】:

我目前正在为我的团队评估 Git 存储库托管服务的选项。我偏爱使用 GitHub,但可能有一些原因我们会改为(或另外)想要使用 Atlassian 的 Stash。

使用 Git 是否可以将存储库及其历史从托管服务复制到另一个?这样做有什么问题吗?如果我们关闭一个供应商并决定我们必须稍后切换,那么我们会失去什么吗?

我对 Git 的一般性答案很感兴趣,但作为其中一部分存储的数据(不一定只是源版本历史记录)是否存在任何可能的问题,因为尝试在 GitHub 和 Atlassian 之间进行专门迁移会丢失堆栈?

【问题讨论】:

  • 当你克隆一个 git 存储库时,你会得到一切——这就是 git 的重点——你应该可以随意移动它多次
  • 但是我可以克隆到一个新的存储库吗?例如,查看 GitHub,我看不到如何基于从本地计算机启动的存储库创建新存储库。我了解我是否可以通过 SSH 访问可以移动的服务器,但我特别担心使用 Stash 或 GitHub 等主机服务时的限制。我可能只是误解了一些基本的东西。如果担心是愚蠢的或者这个问题没有意义,请纠正我。
  • 所有 git 存储库都是平等的(或多或少)。你盒子上的那个和 github 上的一样是一个存储库。因此,如果您将新的设置为新的遥控器并将您的分支推送到它,它将与其他两个相同。

标签: git github bitbucket-server


【解决方案1】:

Joe,根据您的评论,这个问题在 git 的上下文中没有多大意义。存储库的任何克隆都包含存储库的整个历史记录。上面写着,如果您更改服务,则需要重新创建三件事:

  1. github 上的任何git hooks 设置。这些不与存储库一起存储(对于任何克隆的存储库)。但是,您也没有理由不能对它们进行版本控制,因此在任何服务上重新创建它们都很容易。这也是一个很好的做法。版本控制您关心的任何内容。

  2. 有权访问存储库的用户。显然,任何服务更改都意味着您的开发人员必须获得该服务的帐户,获得查看公司存储库的权限等。

  3. 个人开发者存储库。您的公司回购的分叉显然需要在新服务上重新创建,但是一旦您完成 -2- 并牢记 -1- ,这是一个微不足道的操作。你可以像大卫在他的回答中描述的那样简单地做到这一点。

【讨论】:

    【解决方案2】:

    我刚刚用两个不同的遥控器对此进行了测试,通过添加新的、删除旧的和推送,提交历史并没有丢失。

    【讨论】:

    • 您是如何在此处添加“新”的?我认为如果这是我拥有我要迁移到的服务器的地方,那么这一切都以一种简单的方式工作,但我不确定如何使用这些托管服务中的任何一个使用预先存在的项目来播种新项目。谢谢,
    • 在新服务中创建 repo,然后将该 repo 的 Git url 作为远程添加到您当前拥有其他服务远程的工作 repo 中。 “git add github url.git” - 其中 url.git 是新 repo 的 URL,而 github 是您命名远程的名称。然后,您可以使用“git remove origin”删除旧遥控器并推送所有分支。
    猜你喜欢
    • 2018-03-28
    • 2014-08-06
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 2015-01-14
    • 2015-07-11
    • 1970-01-01
    相关资源
    最近更新 更多