我们有一个大的svn存储库,我们在本地使用git和git-svn进行交互。
最近我创建了一个存储库但忽略了以trunk开头的文件。我修复了ignore-paths,因此它忽略了目录中继,而不是任何以trunk开头的文件。
现在我得到git svn"在提交中找不到"自提交git同步以来的错误有文件,但git缺少原始文件提交。
通常会使用git svn reset -rxxxx和git fetch -rxxxx,但这是一个两年前的存储库,我无法回滚到最初创建文件的时候。
如何让git从svn中删除文件?
答案 0 :(得分:1)
创意1:
创建一个svn工作副本。然后:
svn rm <paths which you want un-ignore>
svn commit -m "ignore workaround"
svn merge -r COMMITTED:PREV .
svn commit -m "Reverting: ignore workaround"
然后只需修改.git/config
即可修改ignore-paths
,然后修改git svn rebase
。
创意2:
只需将所有文件手动复制到svn repo的git repo中,提交它们并抛弃svn。
创意3:
不要担心并重置两年前的git repo。
答案 1 :(得分:0)
一种解决方案是:
git svn rebase
.git/info/exclude
删除)git commit
git svn dcommit
这应该会导致如下错误:
SVN的错误:RA图层文件已存在:文件X已存在W: 9166d48381296ed6038baf09425a6e6d84638c8c和refs / remotes / git-svn 不同,使用rebase :: 040000 000000 2ffb637dfc63727c4108c41c705a45e673e5dcbc 0000000000000000000000000000000000000000 D文件夹当前分支 主人是最新的。错误:并非所有更改都已提交 SVN,但是承诺的(如果有的话)似乎是成功的 集成到工作树中。请参阅以上消息 的信息。
git commit
提交将存在,但git svn dcommit
不会出现在上游svn
存储库中(即不会发生任何事情,fugazi,仙尘,它不存在)。