如何在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-svn做git 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。