Как удалить начало из хранилища git

Основной вопрос: Как отключить репо из git из источника, из которого он был клонирован?

git branch -a показывает:

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

и я хочу удалить все знания о происхождении и соответствующие изменения.

Более длительный вопрос: я хочу взять существующее репо subversion и сделать из него несколько меньших git репозиториев. Каждый новый репозиторий git должен иметь полную историю только соответствующей ветки. Я могу обрезать репо только на нужное поддерево, используя:

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

но результирующее репо все еще содержит все ревизии теперь отброшенных поддеревьев в ветке origin/master.

Я понимаю, что я мог бы использовать флаг -T для git -svn, чтобы в первую очередь клонировать соответствующее поддерево репозиции subversion. Я не уверен, что это было бы более эффективно, чем позже запускать несколько экземпляров git filter-branch --subdirectory-filter в копиях репозитория git, но в любом случае я все равно хотел бы разорвать связь с источником.

Ответ 1

Достаточно просто:

git remote rm origin

Что касается вопроса filter-branch - просто добавьте --prune-empty в команду ветвления фильтра и удалите любую ревизию, которая фактически не содержит изменений в вашем результирующем репо:

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