[英]How to commit to SVN and GIT in one commit?
目前,我们公司正在从SVN迁移到GIT。
在接下来的几个月中,我们需要使两个存储库保持相同,我需要使用命令或其他方式来提交我对SVN和GIT的工作。
我有这种方法吗?
是的。 使用git svn
允许在git和SVN之间进行双向操作。
您可以使用git commit
提交到git,然后使用git svn dcommit将提交推送到SVN。
如果您要将提交从本地git repo推送到某些远程服务器,请先运行dcommit
因为dcommit
将提交发送到SVN,创建SVN版本,然后在git中重新提交提交,以将git与SVN同步。
当其他人向SVN添加新提交时,您将它们提取到git中并使用git svn rebase
。
实际上,这没有多大意义,因为使用远程SVN存储库的本地Git存储库会带来很多好处,因此这种方式无效。 但是,如果您真的想这样做,只需创建一个别名即可。 例如 git config alias.committoboth '!ctb() { git commit "$@" && git svn dcommit; }; ctb'
git config alias.committoboth '!ctb() { git commit "$@" && git svn dcommit; }; ctb'
,然后您可以执行git committoboth -m "my commit message"
。
相反,您可能还想看看https://subgit.com/ 。 如果您需要在更长的时间内支持多个用户的Git和SVN,则最好在该工具说明的服务器上进行同步。
您不能在一个命令中执行此操作,除非您创建了一个命令来为您执行此操作,因为诞生git-svn没有这样的命令。
您可以将shell脚本文件创建为git_svn
,该文件对工作流程所需的所有命令进行分组。 并将此shell脚本添加到您的系统路径:
#!/bin/sh
git commit -m "$1"
git push origin
git svn dcommit --rmdir
要使用它,您只需执行以下操作:
$ git_svn "my commit message"
参考文献:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.