当必须同时使用Git和Subversion时如何处理Git-svn

sca*_*pus 7 svn git git-svn

[更新]

有关详细信息,我尝试在家中使用纯Git的原因是,我的公司希望转移到Git,但是经理不愿意进行更改,因为开发人员在我们自己的存储库中没有Git知识.所以,我尝试做的是,我试图让每个人都使用Pure git,而有人可以在这个学习阶段合并回Subversion.因此,在任何紧急情况下,他们仍然可以使用Subversion.

所以,在每个人都熟悉Git之前,我无法转移存储库以使用纯Git.因此,它将同时更新Subversion和Git.(现在主存储库是Subversion).因此,我尝试通过dcommit将存储库同步回Subversion,使Git能够顺利运行.

[题]

我在组织中使用Subversion作为存储库,因此我将其作为我的个人Git转储(并计划将来使用替换Subversion和Git)

现在,我有使用GitSubversion(主要来源)的存储库.当我必须同时使用git和subversion时,我有一个问题需要处理git svn rebase.

我的工作流程如下

在办公室

  1. 存储库具有Git-svn接口
  2. 我总是从这里使用git svn dcommit将代码提交给Subversion .
  3. 我推送到Bitbucket的远程git存储库

在家

  1. 我从Bitbucket克隆存储库
  2. 使用并致力于Bitbucket

现在,回到OFfice

  1. git pull
  2. git svn rebase
  3. git svn dcommit
  4. git push

在第4步.我有一个问题,我已经重新分配了我的分支

现在问题出在我回家的时候

当我回到家时,我不能使用'git fetch',因为分支已经重新定位.所以,我必须使用git branch -D .....删除分支,然后再次git checkout.

所以,我期待我们能够同时使用两个Git仓库和Subversion和做的Git与顺利完成后,操作方式混帐SVN变基混帐SVN dcommit.

注意.我不想在家里使用任何git-svn.尝试前进只使用Git.

sca*_*pus 0

从《Version Control with Git》一书中找到了解决方案。第 295 页。

必须签出远程分支,而不是使用本地 - master 分支

git checkout remote/master (Detach HEAD)
git merge --no-ff master (merge the local master)
git svn dcommit
git push origin (update to git Repository)
Run Code Online (Sandbox Code Playgroud)

该模型适用于一个人将合并回 Subversion 存储库,而另一个人则在纯 Git 或纯 Subversion 上工作。通过这种方式,Git 用户可以使用 Git,而不会出现合并问题。