如何使用Git并通过SVN发布?

时间:2015-04-07 22:04:32

标签: git svn

有没有办法完全使用Git& GitHub,当需要部署时,我们(强制)将最新的快照合并到SVN分支?

示例工作流程(可针对不同分支重复):

  1. Clone Git repo
  2. 结帐,分支,进行更改等
  3. master
  4. 打开请求
  5. 合并PR
  6. 致力于SVN trunk
  7. 我们已经尝试过git-svnSubGit但他们似乎都混淆了这个过程并增加了复杂性。

    例如,git-svn提供基于增量提交的dcommit,但似乎不允许获取最新快照(没有提交历史记录)和强制推送到SVN。我想我们可以在另一个分支中压缩提交历史记录,但这是我们希望尽可能避免的额外步骤。

    这两款产品还尝试同步来自SVN的更改,这是我们不想做的。这是一条单行道。

    我们考虑了检查SVN仓库并简单地在顶部“添加”Git仓库(分别忽略.git.svn)的方法,但SVN是基于文件夹的,会导致问题。例如,Git repo在以下结构中将在哪里init'?

    my-project
      |-- trunk/
      |-- branches/
            |-- integration/
            |-- staging/
            |-- uat/
      |-- tags/
    

    我们确实有自动构建/发布流程,因此理想情况下可以在那里实施任何潜在的解决方案(而不是手动工作)。

1 个答案:

答案 0 :(得分:0)

如果你需要单向快照git-> svn,你可以深入一下git reset命令。基本上你可以在git-svn遥控器的顶部移动你的主(或其他)git分支的状态而没有合并/ rebase的复杂性。然后你用git svn dcommit推送到svn。