将 git-svn 分支与 git 存储库同步

Synchronize git-svn branch with git repository

我们有一个使用 SVN 作为版本控制的客户端。我们必须使用他们的存储库,他们不想为我们创建分支,只想为他们部署的分支创建分支,所以我们不能创建小提交,只能在功能准备好部署时创建大提交。

我读过 git-svn,我认为它几乎是完美的解决方案。但是有没有办法将本地创建的分支与外部存储库同步?既可以备份也可以与其他人同步。

我的意思是,您有 SVN 存储库。使用 Git 克隆它并创建一个分支(在本地,不允许在 SVN 存储库中执行)。有没有办法使该分支指向任何新创建的存储库。就像从该分支创建的不同存储库一样。

我希望我能解释一下。这可能吗?

在你用类似这样的东西克隆了 subversion 存储库之后

git svn clone -s $SVN_URL proj-clone

你可以添加一个"real" git远程仓库:

cd proj-clone
git remote add team $GIT_URL

您必须选择与通常的 origin 不同的远程名称,因为 git svn 将使用与 git remote 相同的引用(例如 refs/remotes/origin/trunk)进行跟踪。

之后您可以 pull/push 像往常一样连接到 git-远程。


如果 - 另一方面 - 你只想像这样跟踪 一个 分支:

git svn clone $SVN_URL/trunk proj-clone

然后 git svn 不使用命名空间 refs/remotes/origin/*,而是 refs/remotes/git-svn。在这种情况下,您可以使用通常的 origin 作为远程名称。


在任何情况下:您可以在 git svn clone 期间使用 --prefix= 参数修改它。 (参见docs)。