我和我的队友正在努力让我们的 svn 存储库与我们的 git 存储库同步。我们正在开发一个项目,我们被要求在 svn 存储库(由 assembla.com 站点托管)上共享我们的代码。由于我们习惯于使用 git 对代码进行版本控制,因此我们决定充分利用 git 提供的 git svn 功能。为了共享我们所有的工作并将其划分到正确的分支中,我们也有一个 git 的远程存储库(bitbucket)。
到目前为止,我们使用 git 提交的所有工作都没有给我们带来问题,但是在出现错误后同步 svn 存储库错误时。
我按照这个答案将现有的 git 存储库推送到 SVN以将 svn 存储库连接到 git 存储库,但是在几次合并和提交之后,我遇到了错误,我无法再提交更改。
现在我有一个分支,它是 svn/trunk 的副本
$ git checkout -b assembla_copy -t svn/trunk
Branch assembla_copy set up to track local ref refs/remotes/svn/trunk.
Switched to a new branch 'assembla_copy'
$ git svn rebase svn/trunk
Current branch assembla_copy is up to date.
要将它与我的主分支同步,我都尝试过
git merge master
和
git rebase master
但是,虽然git rebase master
开始应用自第一次提交以来的所有更改并产生大量冲突(当我已经在 svn/trunk 中进行了这些更改时,因为我以某种方式设法将一些更改推送到在线存储库;我们是ar r46 目前),git merge master
一切正常,但是当我提交时,所有更改都汇总在一个提交中,其中声明“将分支'master'合并到 assembla_copy”,而我更希望它提交所有单独的提交(就像它在开始时所做的那样......)。
如果我从主分支提交,所有提交都是分开的,但是主分支被重新定位,所以所有以主提交为父的分支都显示为与主分支分离。
您能否向我解释一下正确的工作流程,以拥有一个镜像 git 存储库的 svn 存储库,所有工作都在其中完成(svn 只是一个副本)? 您能否只使用标准的 git 命令而不是像我在上周搜索解决方案时在一些答案中看到的那样复杂的 bash 脚本?
谢谢!