51

もともとgit-svnを使用して作成されたgitリポジトリがあります。これで、プッシュ先のgitサーバーがあり、svnリポジトリが失われました。svnリモートを削除できますか?どのように?

4

4 に答える 4

76

ファイルを編集して.git/config、削除するリモートに関連付けられているセクションを削除できます。

削除する行は、おそらく次のようになります。

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

これにより、リモートがGitから削除されますが、Gitコミットとに保存されているSVNコミットの間には引き続き関係があります.git/svn。すべてのSVNリモートを削除したい場合は、このディレクトリ全体を削除できます。1つのSVNリモートだけを削除して他のリモートを保持したい場合は、ディレクトリ構造を確認し、削除するリモートに関連付けられているものだけを削除する必要があります。

于 2012-08-17T22:08:14.580 に答える
25

ほとんどの*nixシェル、bashまたはmingw32を介してそれを行う:

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

または、構成を表示するときにあるセクション(cat .git/config)。たとえば、次の行は、Ericのソリューションで説明されているのと同じ構成セクションを削除します。

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

.git次に、フォルダー内のすべてのsvnのもの(svn、logs、およびrefs)を削除します。これはセルゲイが示唆していることでもあります。

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

ちょうど良い測定のためのガベージコレクション:

git gc

ソース/クレジット

于 2014-11-26T23:33:51.183 に答える
21

エリックの答えは正しいですが、完全ではありません。ラファエル・ラポソのコメントの後でも。新しい回答を投稿するのではなく、回答にコメントできればいいのですが、50の評判に達するまでコメントできないというルールがあります。

追加は次のとおりです。

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

これらの2つのファイルに参照があることを示しました。

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

それらの参照を削除するまで、git-svnが実行しているのを見ることができましたgit log

于 2013-05-13T05:51:54.790 に答える
5

ローカル設定がなく、ディレクトリ内での煩わしさを解消したい場合は.git、gitリポジトリをgitリモートから新しいディレクトリに複製し、古いディレクトリを削除するだけです。

いくつかの単純なローカル構成(たとえば、グローバル構成とは異なるユーザー/電子メール)がある場合は、これを実行し、クローン作成後にローカル構成を復元する方がおそらく簡単です。

于 2016-10-03T11:20:38.253 に答える