我可以使用git-svn看起来像是在使用SVN,如果是的话怎么样?

时间:2011-03-09 14:46:56

标签: svn git git-svn

我习惯了git而且我非常喜欢它,但是我的一个客户端(仍然?)使用了subversion,我现在不是关于svn,但我知道有一个git-svn包。

我知道可以使用git从svn获取repo,但是我可以使用git而不是svn并仍然提交,并“推送”到中央svn服务器吗?

我想使用git而不是svn如果我可以指出我这样做的任何教程吗?

谢谢

修改

我实际上并不关心获取所有提交,只有10/20之前的提交就足够了,因为应用程序处于工作状态而且只是做了改进所以我只会获取所有提交历史记录,如果它是实际需要。

2 个答案:

答案 0 :(得分:5)

git-svn提供了Git和SVN的桥梁。它本身就像vanilla Git,但是只要你试图将更改推送到master或从master获取,它就会完全不同。

您可以使用git commit在本地提交,而git svn dcommit将本地提交推送到SVN,而不是进行推送。

git-svn documentation解释了如何从SVN存储库中提取。请注意,它慢(与普通git相比),因为它从SVN获取每个修订版。请参阅文档底部的示例。

这是我使用它的一种典型方式:

  1. git svn clone http://svn.example.com/project -T trunk -b branches -t tags - URL是您的SVN repo,您​​指定-T,-b和-t开关以指定SVN目录中的子路径。然后,Git将使用这些SVN目录来查找分支和标记,并将trunk作为主服务器。
  2. 进行一些代码更改
  3. git add...暂存您的更改
  4. git commit...在本地提交您的更改。
  5. git svn dcommit将本地提交推送到SVN。对于每个本地提交,Git将在SVN服务器上进行这些单独的提交。

答案 1 :(得分:0)

这是可能的,但我认为最好的是更改版本控制应用程序:)

获取svn提交到git(当你已经git svn初始化它当然)

git svn fetch

让你的git提交给svn

git commit git svn dcommit