有没有办法完全使用Git& GitHub,当需要部署时,我们(强制)将最新的快照合并到SVN分支?
示例工作流程(可针对不同分支重复):
master
trunk
我们已经尝试过git-svn
和SubGit但他们似乎都混淆了这个过程并增加了复杂性。
例如,git-svn
提供基于增量提交的dcommit
,但似乎不允许获取最新快照(没有提交历史记录)和强制推送到SVN。我想我们可以在另一个分支中压缩提交历史记录,但这是我们希望尽可能避免的额外步骤。
这两款产品还尝试同步来自SVN的更改,这是我们不想做的。这是一条单行道。
我们考虑了检查SVN仓库并简单地在顶部“添加”Git仓库(分别忽略.git
和.svn
)的方法,但SVN是基于文件夹的,会导致问题。例如,Git repo在以下结构中将在哪里init
'?
my-project
|-- trunk/
|-- branches/
|-- integration/
|-- staging/
|-- uat/
|-- tags/
我们确实有自动构建/发布流程,因此理想情况下可以在那里实施任何潜在的解决方案(而不是手动工作)。
答案 0 :(得分:0)
如果你需要单向快照git-> svn,你可以深入一下git reset命令。基本上你可以在git-svn遥控器的顶部移动你的主(或其他)git分支的状态而没有合并/ rebase的复杂性。然后你用git svn dcommit推送到svn。