gitリポジトリからoriginを削除する方法


279

基本的な質問:gitリポジトリとクローン元のgit repoの関連付けを解除するにはどうすればよいですか?

git branch -a ショー:

* master
  remotes/origin/HEAD -> origin/master

そして、私は起源のすべての知識と関連する改訂を削除したいと思います。

長い質問:既存のSubversionリポジトリを利用して、そこから小さなgitリポジトリをいくつか作成したいと考えています。新しいgitリポジトリにはそれぞれ、関連するブランチのみの完全な履歴が必要です。以下を使用して、必要なサブツリーだけにレポをプルーニングできます。

git filter-branch --subdirectory-filter path/to/subtree HEAD

しかし、結果のリポジトリには、オリジン/マスターブランチの下にある現在破棄されたサブツリーのすべてのリビジョンが含まれています。

-Tフラグをgit-svnに使用して、そもそもSubversionリポジトリの関連するサブツリーを複製できることを理解しています。それが後でgit filter-branch --subdirectory-filtergitリポジトリのコピーで複数のインスタンス化を実行するよりも効率的であるかどうかはわかりませんが、いずれにしても、原点とのリンクを解除したいと思います。

回答:


473

かなり簡単です:

git remote rm origin

filter-branch質問-ちょうど追加し--prune-empty、あなたのフィルタ分岐コマンドに、それは実際にあなたの結果のレポでのすべての変更が含まれていない任意のリビジョンを削除します:

git filter-branch --prune-empty --subdirectory-filter path/to/subtree HEAD

1
ありがとう。--prune-empty欠けていたのはそれでした。
awy

2
うーん。取得error: Could not remove config section 'remote.origin'
Dima Lituiev

5

既存のオリジンを削除し、プロジェクトディレクトリに新しいオリジンを追加する

>$ git remote show origin

>$ git remote rm origin

>$ git add .

>$ git commit -m "First commit"

>$ git remote add origin Copied_origin_url

>$ git remote show origin

>$ git push origin master
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.