Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将git与svn结合使用_Svn_Git_Git Svn - Fatal编程技术网

将git与svn结合使用

将git与svn结合使用,svn,git,git-svn,Svn,Git,Git Svn,我必须使用svn作为源代码管理工具,但我希望在本地使用git分支。我想知道它是否可以毫无问题地工作,最好的方法是什么。我读过关于“git svn”的文章,但看起来我必须同步整个svn repositoy才能使用它。这不是一个选择。假设我是唯一的开发人员(不是开发人员之间的git推/拉),并且只想“本地”使用git。最好的方法是什么?在我本地签出的项目上只是“git init”?在同一文件夹中使用这两种工具?有更好的方法吗 使用git svn。您不必同步整个存储库,只需同步特定的分支,就可以跳过旧

我必须使用svn作为源代码管理工具,但我希望在本地使用git分支。我想知道它是否可以毫无问题地工作,最好的方法是什么。我读过关于“git svn”的文章,但看起来我必须同步整个svn repositoy才能使用它。这不是一个选择。假设我是唯一的开发人员(不是开发人员之间的git推/拉),并且只想“本地”使用git。最好的方法是什么?在我本地签出的项目上只是“git init”?在同一文件夹中使用这两种工具?有更好的方法吗

使用
git svn
。您不必同步整个存储库,只需同步特定的分支,就可以跳过旧的历史记录。但是,您需要同步所选分支上的所有修订。如果没有这一点,它的用处会小得多。

您不需要同步整个存储库。您可以克隆所需的模块:

git svn clone --stdlayout http://myrepo/module
这将拉下该模块的整个历史记录。您只需抓住
头部

git svn clone --stdlayout -r HEAD http://myrepo/module
我大部分时间都是这样工作的


关于
git svn
工作流,有很多相关问题。。。只需按照此答案右侧的链接进行操作:-)

您不必克隆整棵树,只需进行浅层克隆即可。请参见

“我读到了关于‘git svn’的文章,但似乎我必须同步整个svn repositoy才能使用它。这不是一个选项。”为什么不呢?信不信由你,
.git
文件夹通常比所有
.svn
文件夹加起来占用的空间少。最糟糕的部分是花在原始克隆上的时间,因此您可能希望在晚上或周末这样做。如果您真的不想这样做,您可以使用
-r
进行“浅克隆”,如本问题所述:是的,您可以在同一文件夹中使用这两种工具。只需确保将
.svn/
放在
.gitignore
中,并将
.git
.gitignore
放在
svn:ignore
属性中,这样两个工具就不会显示彼此的元数据。