如何在一次提交中提交SVN和GIT?

时间:2017-08-27 08:23:59

标签: git github svn git-svn

目前我们正在从公司的SVN转到GIT。

我们需要在接下来的几个月内使这两个存储库保持一致, 我需要一个命令或其他方式来承诺我的SVN和GIT工作。

我有这样的方式吗?

3 个答案:

答案 0 :(得分:0)

是的,确实如此。使用git svn - 它允许git和SVN之间的双向操作。

您使用git commit提交git,然后使用git svn dcommit将提交推送到SVN。

如果要将提交从本地git repo推送到某些遥控器首先运行dcommit,因为dcommit向SVN发送提交,创建SVN修订版,然后在git中重新提交git以使git与SVN同步。

当其他人向SVN添加新提交时,您可以使用git svn rebase将其提取到git和rebase。

答案 1 :(得分:0)

实际上这没有多大意义,因为你通过这种方式使远程SVN repo的本地Git repo变得很有优势。但是如果你真的想这样做,那就做一个能做你想做的别名。 E. g。 git config alias.committoboth '!ctb() { git commit "$@" && git svn dcommit; }; ctb'然后您可以执行git committoboth -m "my commit message"之类的内容。

相反,您可能还想查看https://subgit.com/。如果您需要在更长的时间内为多个用户支持Git和SVN,那么最好在服务器上执行该工具所说的同步。

答案 2 :(得分:0)

除非您创建一个命令为您执行此操作,否则您不能在一个命令中执行此操作,因为诞生git-svn没有这样的命令。

您可以将外壳脚本文件创建为git_svn,以将工作流程所需的所有命令分组。并将此shell脚本添加到您的系统路径:

#!/bin/sh
git commit -m "$1"
git push origin
git svn dcommit --rmdir

要使用它,只需执行以下操作即可

$ git_svn "my commit message"

参考文献:

  1. Git svn fetch and then commit to remote git
  2. https://gist.github.com/rickyah/7bc2de953ce42ba07116 git-svn的简单指南