【问题标题】:GIT pull from a bare repositoryGIT 从裸仓库拉取
【发布时间】:2010-07-26 18:14:03
【问题描述】:

我有一个 GIT 存储库 A,它是使用 subversion 存储库中的“git svn”设置的。我做了一个名为 B 的 A 的克隆,其中 B 是一个裸存储库(git clone --bare)。我从 B 克隆 C,在 C 上工作并定期将我的更改推送到 B(我让 B 裸露的原因)。现在,当我想从 subversion 获取最新更新时,我在 repo A 上运行“git svn rebase”。如何将这些更新从 A 拉到 B。移动到 B 并执行“git pull”失败并出现错误 - “致命: /usr/local/git-1.7.0/libexec/git-core/git-pull 不能在没有工作树的情况下使用。”。将更新从 A 移动到 B 的正确方法是什么

【问题讨论】:

    标签: git git-svn


    【解决方案1】:

    由于 B 是裸露的,您可能希望将从 A 的更改推送到 B。

    您所描述的似乎是很多推拉,没有明显的好处。通常,您可以通过直接在使用git svn clone 创建的存储库中工作来使用 git-svn。您创建所有这些额外的存储库有什么特别的原因吗?

    【讨论】:

    • 存储库 A 必须驻留在定期备份的系统上。我的开发机器与这个备份系统不同。因此,至少需要两个存储库副本。我保留了中间裸仓库 B,因为我想定期分别测试颠覆代码和带有我的新更改的代码。因此,当时我选择了两个独立的 repos A 和 B。可能通过分支来做到这一点,但这就是我做出的选择。
    • @Aleph:Subversion 存储库是否仍然存在,或者您是否停止使用该存储库并将存储库转换为 Git(在存储库 A 中)?如果 Subversion 存储库仍然存在,我不明白为什么 A 必须存在,你可以在你的开发机器上 git svn clone。如果 Subversion 存储库不再存在并且 A 现在是主存储库,则应将存储库 A 转换为裸存储库,以便您可以推送到它。
    • 拥有这些存储库是有好处的。如果您有多个 git 用户必须针对 SVN 工作,那么能够从 B 克隆和提取最新更改会极大地加快工作速度。 A 是所谓的“获取”回购。此处描述了该策略:stackoverflow.com/questions/1880405 答案是正确的。你应该从 A 推到 B。
    猜你喜欢
    • 1970-01-01
    • 2011-10-06
    • 2014-09-09
    • 2018-08-26
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    相关资源
    最近更新 更多