我正在做一个开发项目。
该公司正在使用SVN
,因此主要commit
和checkout
应通过SVN
完成。
但是,我不喜欢SVN
并且是git
用户。因为只有当我认为我的代码是好的时候我才会致力于公司SVN
,我想将git
用于我自己的历史管理员。
我不需要使用git来执行SVN
事,反之亦然。
我可以同时使用SVN和git对我的相同代码进行版本控制吗? 他们之间没有互动。
答案 0 :(得分:37)
您可以使用git svn clone <SVN repo URL>
将subversion存储库克隆到您的计算机。该代码将作为git存储库提供。您可以在那里工作并根据需要进行本地提交。有一个命令行选项可以获得“浅”结帐,而不是整个存储库,这通常很有用。我忘了它是什么。
任何时候,您希望运行等效的svn update
,执行git svn rebase
。这将获取在您上次同步后检入SVN的新提交,然后将您的更改重新绑定到新提示。
当您准备好提交时,请执行git svn dcommit
。这会将您的所有新提交逐个发送到svn。您还可以将本地提交压缩为单个提交,然后首先执行本地rebase,然后再执行svn dcommit。这应该在初始分支上完成(通常是master
)。
你从subversion退出然后在git本地工作的事实意味着它们之间存在“交互”,所以你的最后一个语句无效。