我有一个已经存在的git-svn repo,我的.config文件中有一个忽略路径,如下所示:
ignore-paths = ^(?!(Path1/Proj1|Path1/Proj2|Path2/Proj3))
这很有效。
有人在我的git repo中添加了一个svn中的新项目。
如果我将ignore-paths更改为下面的内容并发出fetch或rebase,我永远不会看到Path2 / Proj4
ignore-paths = ^(?!(Path1/Proj1|Path1/Proj2|Path2/Proj3|Path2/Proj4))
在过去,我总是放弃并抨击我的git repo并重新创建它。还有更好的方法吗?
答案 0 :(得分:2)
编辑了你需要的忽略路径
git svn reset -r <n> -p # where <n> is the SVN revision where the new path was added.
git svn fetch
git rebase # or reset
参考git-svn(1)
:
<强> 重置 强>
将 fetch 的效果撤回到指定的修订版。 这允许您重新获取 SVN修订版。通常是 SVN修订版的内容永远不应更改并重置 不应该是必要的。但是,如果SVN权限发生变化, 或者如果更改了--ignore-paths选项, fetch 可能会失败 “找不到提交”(文件先前未显示)或 “校验和不匹配”(错过了修改)。如果问题 文件永远不能被忽略(使用--ignore-paths)唯一 修复仓库的方法是使用重置。
只更改了rev_map和refs / remotes / git-svn(参见 有关详细信息,请参阅下面的FILES部分中的 $ GIT_DIR / svn / * \ * /。rev_map。* 。 使用 fetch 然后 git reset 或 git rebase 关注重置 将本地分支移动到新树上。