web-dev-qa-db-ja.com

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

基本的な質問:Gitリポジトリを複製元のOriginから切り離すにはどうすればいいですか?

git branch -aは以下を表示します。

* master
  remotes/Origin/HEAD -> Origin/master

そして私はOriginに関する全ての知識とそれに関連する改訂を削除したいと思います。

より長い質問:私は既存のSubversionリポジトリを取り、そこからいくつかの小さいgitリポジトリを作りたいです。新しいgitリポジトリにはそれぞれ、関連するブランチだけの完全な履歴があるはずです。次のようにして、レポを希望のサブツリーに整理することができます。

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

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

最初にSubversionリポジトリの適切なサブツリーをクローンするためにgit-svnに-Tフラグを使うことができることを私は知っています。それが後でgitリポジトリのコピーでgit filter-branch --subdirectory-filterの複数のインスタンス化を実行するよりも効率的かどうかはわかりませんが、いずれにしてもOriginとのリンクを解除したいのです。

219
awy

かなり簡単です:

git remote rm Origin

filter-branch質問に関しては - あなたのfilter branchコマンドに--Prune-emptyを追加するだけで、結果として得られるリポジトリに実際には変更を含まないリビジョンは削除されます。

git filter-branch --Prune-empty --subdirectory-filter path/to/subtree HEAD
378
Amber