1

今天我将我们的 svn 存储库克隆到 git 中。不过,我有一些未提交的工作,所以我svn commit把它们拉到了 git 存储库中。

问题是,git 似乎对 svn 存储库感到困惑。

首先,git remote什么都不显示!但是,如果我写git pull <tab>,它会自动完成svn-remote.svn。尝试导致

fatal: 'svn-remote.svn' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

我去查看了 git 自己的文件。这是配置文件:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[svn-remote "svn"]
        url = svn+ssh://myname@repository_address
        fetch = libskin/dev:refs/remotes/trunk
        branches = libskin/branch/*:refs/remotes/*

所以遥控器实际上是存在的(虽然奇怪的是分支不存在)。所以我开始尝试git pull svngit pull trunk其他事情,但他们都以同样的信息失败了。

我什至尝试在配置文件中手动添加一个分支:

[branch "master"]
        remote = svn
        merge = refs/heads/master

但问题仍然存在。

我该如何解决这个问题?

4

2 回答 2

6

要同时使用 Git 和 Subversion,您使用的命令是git-svn

git svn fetch
git svn rebase

您无法使用普通的 git 命令提交新的 svn。你可以在这里阅读更多教程

于 2012-05-07T13:53:42.093 回答
0

要同时使用 Git 和 Subversion,只需将SubGit安装到您的存储库中。它使 SVN 和 Git 存储库在服务器上自动保持同步。因此,您可以使用任何 SVN 或 Git 客户端来处理存储库。与 git-svn 相比,它更好地保留了 SVN 概念,如忽略、EOL、标签等(将它们翻译成 .gitignore、.gitattributes、Git 标签等)。

如果您需要仅限客户端的解决方案,我建议您使用SmartGit。它也比 git-svn 更好地保留了这些 SVN 概念。.

于 2012-05-12T13:02:13.017 回答