如何在git中删除subversion remote?

我有一个最初使用git-svn创build的git存储库。 现在我有一个git服务器,我推到svn库已经丢失。 我可以删除svn远程? 怎么样?

您可以编辑.git / config文件,并删除与要删除的远程关联的部分。

你想删除的行可能看起来大致是这样的:

[svn-remote "svn"] url = url-of-svn-repository/trunk fetch = :refs/remotes/git-svn 

这将从git中删除远程,但你仍然会有git提交和存储在.git / svn中的svn提交之间的关系。 如果你想摆脱所有的svn遥控器,你可以删除这个整个目录。 如果你想摆脱一个SVN的远程并保留其他人,你将需要看目录结构,只有删除与你正在删除的远程关联的。

埃里克的回答是正确的,但不是完整的。 即使在Rafael Raposo的评论之后。 我希望我可以评论答案,而不是发表一个新的,但规则是你不能评论,直到你达到50的声誉。

另外是:

 find .git -type f -exec grep -nH git-svn "{}" \; 

向我展示了我在这两个文件中的引用:

 ./.git/info/refs:4:fd34a5c...8073f3 refs/remotes/git-svn ./.git/packed-refs:5:fd34a5...cd6c33 refs/remotes/git-svn 

直到我删除这些引用,我可以看到git-svngit log

通过大多数* nix shell,bash或mingw32来做:

 cd ~/your_repo git config --remove-section svn 

或者当你查看configuration文件( cat .git/config )的时候有什么cat .git/config 。 例如,下一行将删除Eric的解决scheme中描述的相同的configuration部分:

 git config --remove-section svn-remote.svn 

接下来删除.git文件夹内的所有svn文件(svn,logs和refs)。 这也是谢尔盖所暗示的。

 rm -rf .git/svn .git/{logs/,}refs/remotes/{git-,}svn/ 

垃圾收集只是为了好的措施:

 git gc 

源/学分

如果您没有任何本地configuration,并且希望放弃.git目录中的.git ,只需将git远程.git的git repo复制到新目录中,然后删除旧目录。

如果你有一些简单的本地configuration(例如一个不同的用户/电子邮件到你的全局configuration),这可能会更容易做到这一点,然后在克隆后恢复任何本地configuration。