我git svn在我的本地机器上使用与SVN仓库同步.
最近,我团队中的某个人在SVN仓库中添加了一些实验性内容(他试图添加一些标签),并在下一次提交中将其删除.在此之后,我的git svn拒绝获取.它只是到了某个点并且一直停留在那里.
无论如何,我不想将所有实验内容都提取到本地机器中.所以,我想忽略 SVN存储库中的某些提交.这有可能git svn吗?
me_*_*and 12
说提交666是我们需要跳过的.诀窍是git获取除666之外的所有提交.谢天谢地,git-svn给了我们这个-r论点.
首先,在提交被跳过之前立即更新提交:
git svn fetch -r BASE:665
Run Code Online (Sandbox Code Playgroud)
然后,在Subversion提示错误提交后更新所有内容:
git svn fetch -r 667:HEAD
Run Code Online (Sandbox Code Playgroud)
这应该为您提供一个存储库,其中包含您要跳过的提交之外的所有内容.如有必要,您可以跳过多个修订,只需重复上述命令,即可确定要保留的任何提交范围.
如果您跳过将受以后修订影响的文件更改(例如,您跳过文件更改或创建,并且该文件稍后在您要获取的修订中更改),则跳过修订可能会出错.
也就是说,我刚刚完成了跳过修订,其中有人将整个Subversion存储库复制到tags/目录中,然后删除了明显无效的标记.我使用上面的技巧跳过创建无效标记的修订版(Git一直在尝试下载整个存储库),让它获取删除(它只是忽略它),并且所有这些都与世界一致.
小智 -2
您可以再次克隆存储库并使用深度参数来指定年龄...
git clone --depth 3 // Gets the last 3 revisions
Run Code Online (Sandbox Code Playgroud)